Documentation
¶
Overview ¶
Package devicesessionv1 implements the normative semantic checks that JSON Schema cannot express across authenticated context, lease fencing, and time.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var LocalCoreV1 = AuthProfile{
ProfileID: "local-core-v1", Transport: "authenticated-local-ipc",
Authentication: "peer-credentials+launch-token", ChannelBinding: "os-peer-identity+endpoint",
PrincipalScope: "local-user+process", TenantScope: "single-host",
ReplayProtection: "per-launch-nonce+expiry",
}
View Source
var RemoteCloudMacV1 = AuthProfile{
ProfileID: "remote-cloud-mac-v1", Transport: "authenticated-remote-ipc",
Authentication: "mutual-tls+signed-session-token", ChannelBinding: "tls-exporter",
PrincipalScope: "account+host+process", TenantScope: "tenant-id",
ReplayProtection: "nonce+expiry+lease-generation",
}
Functions ¶
func ValidateJSON ¶
func ValidateJSON(data []byte, context AuthenticatedContext, profile AuthProfile, at time.Time) error
Types ¶
type AuthProfile ¶
type AuthenticatedContext ¶
type Binding ¶
type Binding = binding
Binding binds a session to its authenticated transport identity.
type Document ¶
type Document = sessionDocument
Document is the public DeviceSession v1 lifecycle transcript.
func NewDocument ¶
func NewDocument(sessionID string, sessionBinding Binding, sessionLease Lease, capabilities []string, requests []Request, events []Event, context AuthenticatedContext, profile AuthProfile, at time.Time) (Document, error)
NewDocument constructs and validates a complete DeviceSession v1 transcript.
type LeaseFence ¶
type Request ¶
type Request = request
Request is one ordered request-plane message.
func NewRequest ¶
func NewRequest(sequence int, requestID, kind, idempotencyKey string, identity AuthenticatedContext, timestamp time.Time, payload any) (Request, error)
NewRequest builds a typed request using strict JSON payload encoding.
Click to show internal directories.
Click to hide internal directories.