Sealed Authority Module — intent-bound scoped authority capsules for bounded gateway execution
Project description
tibet-sam
Sealed Authority Module.
tibet-sam is the bounded-authority primitive in the TIBET four-W
family:
tibet-vault= WHENtibet-keychain= WHERE/HOWtibet-sam= WHYtibet-gateway= WHERE-EXEC
The point of SAM is simple:
- authorize one bounded act
- without releasing the underlying secret to the caller
Core shape
An agent does not receive a raw API key.
Instead it asks for a sealed authority module that says:
- which intent is allowed
- against which target action
- with which scope constraints
- until when
- under which ephemeral session id
The gateway then:
- breaks seal inside the boundary
- validates manifest constraints
- executes the allowed upstream action
- destroys the ephemeral session
- emits a provenance-sealed response
Current Package Scope
This package now emits a real sealed .tza capsule, lets a local
gateway runtime read that capsule directly, and emits a sealed gateway
receipt back out.
It provides:
- package shape
- SAM types
- inspect and verify surfaces
- keychain-aware validation bridge
- materialization payload shape
- sealed
.tzamaterialization - local gateway runtime for break-seal, validate, execute, destroy
- one real tibet-gateway HTTP proxy adapter
- sealed gateway receipt shape
- human and JSON rendering
- a small CLI to inspect the model
Commands
tibet-sam info
tibet-sam types
tibet-sam runtime
tibet-sam inspect /tmp/upload-pypi-v4.sam.tza
tibet-sam verify /tmp/upload-pypi-v4.sam.tza
tibet-sam verify /tmp/proxy-http.sam.tza --keychain-record /tmp/keychain-ok.json
tibet-sam materialize \
--intent upload_package \
--secret-id sec_pypi_001 \
--target-action /upload/pypi \
--actor-id jis:humotica:agent.ai \
--constraint package=tibet-zip \
--constraint registry=pypi \
--valid-for-seconds 300 \
--json
tibet-sam materialize \
--intent upload_package \
--secret-id sec_pypi_001 \
--target-action /upload/pypi \
--actor-id jis:humotica:agent.ai \
--constraint package=tibet-zip \
--constraint registry=pypi \
--identity-dir /tmp/sam-identity \
--emit-bundle /tmp/upload-pypi.sam.tza \
--json
tibet-sam execute \
--sam-file /tmp/upload-pypi.sam.tza \
--requested-action /upload/pypi \
--request-actor jis:humotica:agent.ai \
--gateway-actor jis:humotica:tibet-gateway \
--gateway-identity-dir /tmp/gateway-identity \
--response-bundle /tmp/upload-pypi.sam-receipt.tza \
--constraint package=tibet-zip \
--constraint registry=pypi \
--json
tibet-sam materialize \
--intent proxy_external_call \
--secret-id sec_pypi_001 \
--target-action /proxy/http \
--actor-id jis:humotica:jasper.admin \
--policy-lane proxy-egress \
--upstream-url https://example.com/api \
--upstream-method POST \
--payload-json /tmp/gateway-payload.json \
--keychain-record /tmp/keychain-ok.json \
--constraint host=example.com \
--identity-dir /tmp/tcbom-admin-id \
--emit-bundle /tmp/proxy-http.sam.tza \
--json
Examples:
Denied Paths
The package should be able to show why a capsule is denied, not only why a capsule is accepted.
Typical denied cases:
- actor mismatch
- expired SAM
- constraint mismatch
- keychain record says exposed or rotation required
- receipt required but no response bundle supplied
- proxy adapter requested without a tibet-gateway base URL
Example:
tibet-sam execute \
--sam-file /tmp/upload-pypi-v4.sam.tza \
--requested-action /upload/pypi \
--request-actor jis:humotica:wrong.actor \
--gateway-actor webshop.admin \
--constraint package=tibet-zip \
--constraint registry=pypi \
--json
And for a structural check:
tibet-sam verify /tmp/upload-pypi-v4.sam.tza --json
Current Runtime Boundary
The current sandbox runtime already performs the bounded flow:
- break seal inside the gateway boundary
- validate actor, target action, and constraints
- open an ephemeral gateway session
- proxy secret use through a local runtime adapter
- destroy the session
- emit a sealed receipt
Current local adapters:
upload_packageto/upload/pypiproxy_external_callto/proxy/httpvia a realtibet-gatewayendpoint- a generic bounded fallback executor for other intents
This is enough to prove the runtime shape end-to-end.
What still remains for production is not the authority flow itself, but
real upstream adapters inside the actual tibet-gateway package.
keychain Coupling
tibet-sam can already validate against a keychain metadata record.
Current checks:
secret_idmust match- leaked exposure states are denied
rotation_required=trueis deniedactive_operator_id, when present, must match the SAM actor
This gives SAM a first real bridge into custody state rather than
treating secret_id as an ungoverned string.
Release Notes For Package Lift
This package is intentionally small, but already proves:
- sealed authority materialization
- direct
.tzaexecution path - explicit session lifecycle
- sealed receipt emission
- inspect and verify operator surfaces
- keychain-aware validation
- policy-lane and receipt semantics
- one real tibet-gateway proxy adapter path
What is still production-later:
- real upstream adapters inside
tibet-gateway - richer keychain storage and rotation backends
- deeper policy lanes and revocation handling
Intended next steps
- move the sandbox runtime shape into real
tibet-gatewayboundary hooks - deepen destroy-session semantics around real external adapters
- add receipt correlation and policy-lane explain views
Short formulation
SAM authorizes the right to perform one bounded act, without releasing the underlying secret.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tibet_sam-0.1.1.tar.gz.
File metadata
- Download URL: tibet_sam-0.1.1.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1545cc671f0a13b076af7f89368ecc617f50b43cb871a682a39ac50309bc2e00
|
|
| MD5 |
a3099ab69989dc6583932ba06283f5a7
|
|
| BLAKE2b-256 |
cd43892d7af3b6ffddd2cd8cd962613cebf9d129e2363d42982219db1fb5ed58
|
File details
Details for the file tibet_sam-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tibet_sam-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dca5ac8d13fa23a35d0b7ac3ea2c3f3cedd0ca523ae1309aeba4006c8af9ead
|
|
| MD5 |
c970dfde0c51bfae9e61ed659052e604
|
|
| BLAKE2b-256 |
2ea9581536d812a2e6c1ecc6c865714c040793198f374b517bf0f224330b233c
|