Update Shellstream specs for consent channels and HFL embedded ABI
Add consent-channels@guildhouse.dev SSH certificate extension for advertising available consent transport channels. Add §8.6 to upper layers spec describing HFL as the in-process capability boundary within Shellstream sessions, with WIT as the formal contract. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
420a4e2ea0
commit
9319ad0ce8
2 changed files with 1126 additions and 1 deletions
1074
docs/shellstream-spec-0001-upper-layers.md
Normal file
1074
docs/shellstream-spec-0001-upper-layers.md
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -69,7 +69,7 @@ document are to be interpreted as described in RFC 2119.
|
||||||
requirements for a tenant.
|
requirements for a tenant.
|
||||||
|
|
||||||
**Trust Domain**
|
**Trust Domain**
|
||||||
: A SPIFFE trust domain (e.g., `guildhouse.io`) that defines the
|
: A SPIFFE trust domain (e.g., `guildhouse.dev`) that defines the
|
||||||
boundary within which SPIFFE identities and their associated
|
boundary within which SPIFFE identities and their associated
|
||||||
attestations are valid.
|
attestations are valid.
|
||||||
|
|
||||||
|
|
@ -324,6 +324,15 @@ credential issuance. It enables audit correlation between the SSH
|
||||||
certificate and the governance audit trail maintained by the
|
certificate and the governance audit trail maintained by the
|
||||||
GovernanceService.
|
GovernanceService.
|
||||||
|
|
||||||
|
> **Security:** The `governance-intent` value MUST be set by the SSH
|
||||||
|
> Credential Composer from the actual `CreateIntentResponse.intent_id`,
|
||||||
|
> NOT from external input (e.g., requester-supplied headers). Verifiers
|
||||||
|
> SHOULD cross-check this value against the GovernanceService to confirm
|
||||||
|
> that the referenced intent exists, is in `redeemed` status, and
|
||||||
|
> corresponds to this credential's issuance. A syntactically valid but
|
||||||
|
> fabricated intent UUID would pass format validation but fail this
|
||||||
|
> cross-check.
|
||||||
|
|
||||||
**Example:**
|
**Example:**
|
||||||
```
|
```
|
||||||
governance-intent@guildhouse.dev = c8d9e0f1-2a3b-4c5d-6e7f-8a9b0c1d2e3f
|
governance-intent@guildhouse.dev = c8d9e0f1-2a3b-4c5d-6e7f-8a9b0c1d2e3f
|
||||||
|
|
@ -482,6 +491,48 @@ explicit version field. If a future revision deprecates or changes the
|
||||||
semantics of an extension, it MUST do so under a new extension name. The
|
semantics of an extension, it MUST do so under a new extension name. The
|
||||||
original extension name retains its original semantics indefinitely.
|
original extension name retains its original semantics indefinitely.
|
||||||
|
|
||||||
|
### 10.5 `consent-channels@guildhouse.dev`
|
||||||
|
|
||||||
|
**Presence:** OPTIONAL.
|
||||||
|
|
||||||
|
**Value:** Comma-separated list of available consent transport channel
|
||||||
|
identifiers with no whitespace. Each channel identifier MUST match
|
||||||
|
`[a-z][a-z0-9]*(-[a-z0-9]+)*`.
|
||||||
|
|
||||||
|
Valid channel identifiers (corresponding to
|
||||||
|
`substrate:consent/channel.channel-kind`):
|
||||||
|
|
||||||
|
| Identifier | Tier | Description |
|
||||||
|
|------------------|------|------------------------------------------------|
|
||||||
|
| `local-tty` | 0 | Synchronous, local terminal prompt |
|
||||||
|
| `unix-socket` | 0-1 | Synchronous or async via Unix domain socket |
|
||||||
|
| `dbus` | 1 | Asynchronous, local D-Bus notification |
|
||||||
|
| `http-webhook` | 2 | Asynchronous, network HTTP webhook |
|
||||||
|
| `message-queue` | 2 | Asynchronous, network message queue |
|
||||||
|
| `store-forward` | 3 | Store-and-forward, delivered on reconnect |
|
||||||
|
|
||||||
|
This extension advertises the consent transport channels available on
|
||||||
|
the host that issued the certificate. Client modules use this
|
||||||
|
information to determine which consent tier is available for governance
|
||||||
|
operations requiring human or policy-automated approval. See
|
||||||
|
[GH-DESIGN-0005 §5](../../guildhouse-platform/docs/GH-DESIGN-0005-wasm-component-model.md)
|
||||||
|
for the tiered consent transport model.
|
||||||
|
|
||||||
|
The value parallels the `consent_channels` field in
|
||||||
|
`HostCapabilities` (SAT-SPEC-0001 §3.9). When both are present,
|
||||||
|
they SHOULD contain the same set of channels. If they differ, the
|
||||||
|
SAT's `HostCapabilities` is authoritative.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
consent-channels@guildhouse.dev = local-tty,unix-socket,http-webhook
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example (air-gapped host):**
|
||||||
|
```
|
||||||
|
consent-channels@guildhouse.dev = local-tty
|
||||||
|
```
|
||||||
|
|
||||||
## 11. References
|
## 11. References
|
||||||
|
|
||||||
- **OpenSSH PROTOCOL.certkeys** -- OpenSSH certificate format and
|
- **OpenSSH PROTOCOL.certkeys** -- OpenSSH certificate format and
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue