1. concepts
temper
  • Temper documentation
  • cli
    • README
    • admin
    • auditor
    • auth
    • blob
    • check
    • cogmap
    • config
    • context
    • data-artifact
    • edge
    • graph
    • health
    • init
    • invitations
    • invocation
    • memory
    • profile
    • pull
    • query
    • resource
    • search
    • skill
    • slack
    • status
    • steward
    • team
    • trail
    • update
    • version
    • warmup
  • concepts
    • Auth Identity
    • Authoring Authorization
    • Contexts and Refs
    • Machine Tokens
    • Operational Memory
    • Release Verification
    • The SAML Reconcile Channel
    • Slack Identity and Revocation
    • Teams and Roles
    • Telemetry
    • Token Verification
    • The Trust Boundary
    • Query Cost and the Bounds That Shape It
    • Deleting a blob — custody, the ledger, and bytes
    • Erasure and the terms of use
    • Blob uploads
  • config
    • README
  • doors
    • Building against Temper
    • Running Temper
    • Using Temper
  • playbooks
    • Adopt operational memory
    • Authenticate
    • Bootstrap an Org
    • Bootstrap a Team's Self-Cognition
    • Build a cognitive map
    • Connect Claude Code
    • Connect Temper to Claude Desktop
    • Deliver L0 Kernel Content
    • Deploy a Steward Agent
    • Deploy the Web UI
    • Enterprise Install
    • Provision a Read-Only GitHub Connection
    • Ingest a corpus
    • Install Temper
    • Run a Team
    • Self-Host Temper
    • Self-host Temper with Okta
    • Self-host Temper with a SAML IdP
    • Send traces to an OTLP backend
    • Slack Mentions
    • Standing Up a Machine Credential
    • Commit structured data as an artifact
    • Compose Queries That Stay Fast
    • Offboard a Departure
    • Reblock a corpus
    • Rate-limit an instance at the edge
  • sdks
    • Integrating Ruby with temper-rb
  • Temper Cloud API
    • Reference
      • API Reference
        • Access
          • Request to join the gating team
          • Check your join request status
          • Withdraw your pending join request
          • Ask an admin to reconsider a revocation
          • Read public system settings
        • Slack Link
          • Disconnect any principal's Slack link
          • Disconnect all your own Slack links
        • Auditor
          • Claim a batch of auditor jobs
          • Survey audit coverage across findings
          • Complete a claimed auditor job
        • Graph
          • Slice a neighborhood within a cognitive map
          • Read a cognitive map's interior
          • Read a container's composition
          • Read goal-container territories and residuals
          • Read your teams and cognitive maps
          • Read the resources composing a region
          • Read what your work is built around
          • Traverse from where you are
        • Cognitive Maps
          • List cognitive maps you can see
          • Create a cognitive map and its telos charter
          • Get one cognitive map
          • Reconcile a cognitive map's contents
          • Read cognitive-map analytics
          • Grant access to a cognitive map
          • Revoke access to a cognitive map
          • Materialize a cognitive map's regions
          • Read formation drift since last materialize
          • Read per-region metrics for a map
          • Read a cognitive map's shape
          • Bind a team to a cognitive map
          • Unbind a team from a cognitive map
        • Contexts
          • List contexts you can see
          • Create a context
          • Resolve a context ref to its id
          • Get one context
          • Materialize a context's regions
          • Retire a context
          • Read per-region metrics for a context
          • Reassign a context to another owner
          • Read a context's shape
          • Rename a context
          • Read formation drift since a context's last materialize
          • Restore a retired context
          • Read a context's analytics
          • Share a context with a team
          • Stop sharing a context with a team
        • Events
          • Read a context's changes after a position
          • Read the event cursor for a context
          • Read a node or edge's event trail
        • Facets
          • Set a facet on a resource
          • Read the live facets of one edge
          • Set a facet on a relationship
          • Retract one facet of a relationship
          • Read the live facets of one resource
        • Health
          • Check service health
        • Ingest
          • Begin a segmented ingest
          • Update an in-progress ingest
          • List the blocks landed so far
          • Append a block to an in-progress ingest
          • Finalize a segmented ingest
        • Invitations
          • Accept a team invitation
          • Decline a team invitation
          • List invitations addressed to you
          • Count the invitations addressed to you
          • List a team's open invitations
          • Revoke a team invitation
          • Invite someone to a team
        • Invocations
          • List agent invocations
          • Open an invocation
          • Get one invocation
          • Close an invocation
        • Profile
          • Read your profile
          • Update your profile
          • List your linked identity providers
        • Query
          • Run a composition of situated acts
        • Relationships
          • Assert a relationship between resources
          • Fold a relationship
          • Change a relationship's type
          • Change a relationship's weight
        • Resources
          • Record a citation-audit verdict against a block's citation
          • List resources you can see
          • Create a resource
          • Get one resource
          • Soft-delete a resource
          • Update a resource
          • List a finding's citation-audit trail
          • Read one content block by address (the three-state resolution)
          • Record a citation-audit verdict
          • List a resource's relationships
          • Read a resource's reconstituted content
          • Read a resource's evidential standing
          • Grant access to a resource
          • Trace a resource's derivation lineage
          • Revoke access to a resource
          • Read a resource's block provenance
          • Attach provenance sources to a resource
          • Reassign a resource to another owner
          • List a resource's relationships, bounded, with the filtered total stated
        • Meta
          • Read a resource's frontmatter
          • Replace a resource's frontmatter
        • Search
          • Search resources by text or embedding
        • Steward
          • List steward candidates
          • Claim steward jobs for a worker
          • Survey steward drift across maps
          • Read a map's ingest delta
          • Advance a map's steward watermark
        • Teams
          • List teams you belong to
          • Create a team
          • Get one team
          • Delete a team
          • Update a team
          • Add a member to a team
          • Remove a member from a team
          • Attach a child team under this team
          • Change a member's role
          • Detach a child team from this team
          • Bulk reassign a team's resources
          • Set, change or clear a team's auto-join role
          • Change a team's slug
          • List the openings that confer on you
          • Forbid or allow public_within over a team's subtree
          • Move this team from one parent to another
          • Open a team's contexts to an ancestor's subtree
          • Restore a soft-deleted team
          • Close a team's opening to an ancestor's subtree
        • Data Artifacts
          • List artifacts for a resource, or counts with counts=true
          • Get a single artifact by ID under its owning resource
          • Commit one data artifact to a resource
          • Get a single artifact by ID — the flat read.
          • Read the artifacts one ask matches, whole
        • Data Artifact Shapes
          • List live shapes declared for a context home.
          • Declare a shape for a data-artifact family within a context home.
          • Get a single shape by ID, with what an ask may name
          • List live shapes declared for a cognitive-map home.
          • Declare a shape for a data-artifact family within a cognitive-map home.
        • Schema
          • List every document type this instance knows, with a schema summary for each.
          • Describe one document type: its JSON Schema, required fields, closed vocabularies, and a filled-in example of the managed tier.
          • Describe the recognized conventions of the open (caller-defined) metadata tier.
        • Blobs
          • List the blobs the caller can read (optionally scoped to one home)
          • Commit bytes as a blob — one multipart request at or under the D7 threshold
          • Begin a segmented upload — declare the home and media type, get the session id
          • Read a staged upload's progress — the resume read
          • Finalize a staged upload — assemble, hash, commit
          • Append one segment to a staged upload — raw bytes as the request body
          • Read a blob's bytes back, whole, streamed (D6)
          • Delete one blob — the ordinary delete act's ruled door
          • List the edges incident to a blob — "what relates to this blob" (D3)
          • Assert one relation between a blob and another anchor
        • Reblocking
          • Run one bounded, resumable re-blocking step
        • Admin
          • Reconcile auto-join team rosters
          • Revoke a profile's system-admin grant
          • Approve a principal
          • Deactivate a principal
          • Reactivate a principal
          • Revoke a principal's admission
          • List profiles in the operator directory
          • Show a profile's state card
          • Promote a profile to system admin
          • List pending join requests
          • Count pending join requests
          • Approve or reject a join request
          • List open reconsideration requests
          • Count open reconsideration requests
          • Close a reconsideration request
          • Read full system settings
          • Update system settings
          • Erase a principal
          • Survey a principal erasure
          • Scrub the history of resource blocks
          • Survey a block history scrub
          • Erase a resource
          • Survey a resource erasure
          • Scrub a resource field's history
          • List a resource's scrubbable fields
          • Survey a field scrub
          • List the erasure retention policy
          • Re-embed stale chunks
          • Set an erasure retention policy
          • Create a SAML group mapping
          • Rebind a machine client to a new client ID
          • Remove an erasure retention policy
          • Remove a SAML group mapping
        • Admin Ledger
          • Read the admin ledger
        • Connections
          • List connections
          • Provision a connection
          • Get a connection
          • Revoke a connection
          • Attach a connection credential
          • Grant a team read-reach on a connection
          • Revoke a team's read-reach on a connection
          • Set connection tool manifest
          • Set connection webhook events
        • Machine Clients
          • List machine clients
          • Register a machine client
          • Issue a machine credential
          • Get a machine client
          • Revoke a machine client
          • Rotate a machine client secret
        • Subscriptions
          • List subscriptions
          • Create a subscription
          • Get a subscription
          • Revoke a subscription
        • Me
          • When you last changed something in each context you can read
    • Schemas
      • AcceptInvitationResponse
      • ActInput
      • ActInvocation
      • ActName
      • ActQuantity
      • ActRefusal
      • ActorAuthority
      • AddMemberRequest
      • AdvanceWatermarkAck
      • AdminDirectoryEntry
      • AdvanceWatermarkRequest
      • AdminDirectoryListResponse
      • AgentAuthorship
      • AdminOpenJoinRequest
      • AdminLedgerEntry
      • AppendBlockPayload
      • AnchorAddressResolution
      • AdminOpenReviewRequest
      • AdminLedgerResponse
      • AdminProfileAuthLink
      • AtlasEdge
      • AnchorVerdict
      • AdminProfileCard
      • AtlasHome
      • AtlasEntry
      • AdminProfileInvitation
      • AdminProfileTeamMembership
      • AssertRelationshipRequest
      • AtlasNode
      • AtlasSubgraph
      • AdminProfilesListAnswer
      • AuditCitation
      • AuditorDispatchTickRequest
      • AuditorDispatchTickResponse
      • AuditorJobCompleteAck
      • BindTeamOutcome
      • BindTeamRequest
      • AnchorShape
      • BlockId
      • BlocksResponse
      • ArtifactCommitRequest
      • ArtifactAsk
      • BodyStorage
      • ArtifactAskPopulation
      • Bridge
      • ArtifactAskTrace
      • BulkReassignAck
      • AskOperator
      • ArtifactPredicate
      • BulkReassignRequest
      • ArtifactCommitResponse
      • BlobId
      • BlobDeleteAck
      • AskablePath
      • ChangeRoleRequest
      • BlobCommitResponse
      • BlobRelationAck
      • ArtifactCursor
      • CharterBlock
      • CharterDisposition
      • ArtifactView
      • BlobRelationAssertRequest
      • BlobRelationDirection
      • CitationAuditRequest
      • BlobRelationEdgeDirection
      • CitationAuditRow
      • BlobRelationRow
      • AttachCredentialResponse
      • AskOrder
      • ClaimedAuditJob
      • BlobSummary
      • AskRequest
      • AuditSweepRow
      • ClaimedJob
      • AskResponse
      • CloseInvocationRequest
      • BlobUploadBeginResponse
      • AutoJoinReconcileRow
      • CogmapAnalyticsRow
      • BlobUploadFinalizeRequest
      • AskedShape
      • CogmapDetail
      • BlobUploadBeginRequest
      • BlobUploadProgress
      • CogmapFoundationRow
      • BlobUploadSegmentInfo
      • BlobCoLinks
      • CogmapGrantBody
      • BlockChunkRef
      • BlockProvenanceRow
      • CogmapId
      • BlockFoldDisposition
      • CogmapRegionMetricsRow
      • CogmapRegionRow
      • CogmapRegulationRow
      • BlockRead
      • BlockCitationAuditRequest
      • AttachChildOutcome
      • CogmapRevokeBody
      • BlockSuccessor
      • CogmapRow
      • AttachOutcome
      • BlobStrikeView
      • CombineOp
      • CompositionTrace
      • CogmapStaleness
      • ConfidenceBand
      • Composition
      • ContextId
      • ContextOwnerRef
      • ContextPanorama
      • CorrelationId
      • CreateCogmapOutcome
      • BlockHistoryScrubExecuteResponse
      • CreateCogmapRequest
      • BlockHistoryScrubPlan
      • BlockHistoryScrubRequestBody
      • ContextRowWithCounts
      • CreateRequestBody
      • BlockHistoryScrubSurvey
      • CreateReviewBody
      • DeleteResponse
      • DeviceOverrides
      • DispatchTickRequest
      • DataArtifactId
      • BlockScrubCount
      • DispatchTickResponse
      • Disposition
      • DriftSweepRow
      • DiscouragedOpenMetaKey
      • EdgeFacetsResponse
      • CloseReviewBody
      • EdgeId
      • EdgeKind
      • DocTypeDescription
      • DocTypeSummary
      • ElementKind
      • EmbedDispatchSummary
      • ErrorBody
      • EntryBounds
      • BoundKind
      • ErrorDetails
      • EventTrail
      • EnforcementMode
      • ExactHit
      • ByteBlock
      • FacetAck
      • FinalizePayload
      • FoldRelationshipRequest
      • CombineNode
      • GrantOutcome
      • ConnectionCredential
      • ConnectionSubscription
      • GroupKeyMeta
      • HealthResponse
      • HomeCogmap
      • HomeContext
      • IdKind
      • EdgeFacetSetRequest
      • IdProvenance
      • ContextResolution
      • ContextCreateRequest
      • FacetSetRequest
      • IdpRevocation
      • IngestCreateResponse
      • IngestDelta
      • ElementEvent
      • DemoteAdminRequest
      • InheritedReadGrant
      • InheritedShare
      • EmbeddingStatus
      • InputSource
      • CredentialVerification
      • InvitationStatus
      • InviteeInvitation
      • ContextActivity
      • InvocationAck
      • ContextChange
      • ContentResponse
      • ContextChangeSubject
      • InvocationCloseAck
      • ContextChangesResponse
      • InvocationId
      • GraphEdgeRow
      • InvocationSummary
      • DeriverFingerprint
      • JoinRequest
      • Intention
      • JoinRequestStatus
      • FacetRetractAck
      • LensId
      • LineageNode
      • ContextRow
      • CreateInvitationRequest
      • ManagedMeta
      • MatchLocation
      • ErasureExecuteRequest
      • CreateSubscriptionRequest
      • EdgeFacetRow
      • MaterializeRequest
      • KindOwnerInput
      • MergePolicy
      • ErasureSurveyRequest
      • EdgeFilter
      • NarrowedBy
      • ErasureTargetOutcome
      • NodeHome
      • CreateSamlGroupMappingOutcome
      • OpenInvocationRequest
      • CreateSamlGroupMappingRequest
      • OrdOp
      • OrphanNode
      • EventId
      • MaterializeAck
      • PlanRefusalDetails
      • Entitlements
      • MaterializeDelta
      • Polarity
      • Profile
      • ProfileAuthLink
      • ProfileId
      • ErasureExecuteResponse
      • ProfileUpdateRequest
      • ErasureSurveyResponse
      • OpenMetaConvention
      • ProvenanceSource
      • PublicSystemSettings
      • QuantityScale
      • EstateCounts
      • QueryResponse
      • EstateDisposition
      • ReassignAck
      • EstateErasureKind
      • EstateResourceErasure
      • ReassignContextRequest
      • EstateResourcePlan
      • ReassignResourceRequest
      • GrantConnectionReachRequest
      • FacetPredicate
      • ReconcileCogmapRequest
      • ReconcileEdge
      • GrantSpec
      • ReconcileEdgeTombstone
      • ProfileWithEntitlements
      • ReconcileEntry
      • ReconcileOutcome
      • FieldScrubClearingEvent
      • ExactArm
      • ReconcileTelos
      • FingerprintMatch
      • FieldScrubExecuteResponse
      • ReconcileTelosBlock
      • FieldScrubFamilies
      • ReconcileTombstone
      • FieldScrubFamiliesRequest
      • Refusal
      • FieldScrubHeldPaths
      • RegionHit
      • RegionDisclosure
      • FieldScrubPlan
      • RegionId
      • FieldScrubRefusalReason
      • RelationshipAck
      • FieldScrubRequestBody
      • ErrorDetail
      • RemoveMemberOutcome
      • FieldScrubFamily
      • RenameContextOutcome
      • RenameContextRequest
      • ResidualBucket
      • ResidualContext
      • ResidualGroups
      • FieldScrubSurvey
      • EventCursorResponse
      • ResidualOwnedReach
      • IngestEnded
      • ResourceAnnotateRequest
      • IngestState
      • ResourceCreateRequest
      • JoinRequestWithProfile
      • ResourceFacetRow
      • ResourceFacets
      • ResourceFacetsResponse
      • Extent
      • ResourceGrantBody
      • ResourceId
      • IssueMachineRequest
      • InvitationTokenRequest
      • ResourceLineage
      • ResourceListResponse
      • FailedExpectation
      • ResourceRevokeBody
      • IdSet
      • LedgerRef
      • ReblockCandidate
      • LedgerRefKind
      • ReturnSpec
      • LedgerRefRel
      • IngestPayload
      • RetypeRelationshipRequest
      • ReblockReceipt
      • LedgerRefTarget
      • RevokeOutcome
      • ReblockRequest
      • ReweightRelationshipRequest
      • ReblockScope
      • OtherAuthorEdge
      • ReblockSummary
      • OtherAuthorEdgeProperty
      • RelationshipTarget
      • SearchReason
      • SearchResponse
      • SearchResultRow
      • SearchScope
      • InvocationActRow
      • SearchScopeInfo
      • SegmentedBegin
      • SegmentedBeginResponse
      • InvocationView
      • ShareContextOutcome
      • RestoreContextOutcome
      • PromoteAdminRequest
      • ShareContextRequest
      • RetireContextOutcome
      • PropertyId
      • SlackDisconnectRequest
      • IssuedMachineCredential
      • SlackDisconnectResponse
      • SlackDisconnectedPrincipal
      • SliceRequest
      • SortOrder
      • InheritedPublicWithin
      • StageDisposition
      • StageInput
      • QueueCount
      • StageInputTrace
      • JsonType
      • StageName
      • ShapeId
      • StageNode
      • OutcomeDeclaration
      • StageOutput
      • StageRelation
      • ResourceConnections
      • RebindMachineRequest
      • ShapeEmptiness
      • PendingInvitationCounts
      • Standing
      • Subscription
      • SubscriptionOverride
      • SystemAccessDetails
      • ReconcileAutoJoinOutcome
      • ProvisionConnectionRequest
      • ProvisionMachineRequest
      • PropertyOp
      • TeamMemberDetail
      • PropertyPredicate
      • TeamMemberRow
      • TeamMemberSource
      • TeamRole
      • MachineClient
      • TeamUpdateRequest
      • RedactedEventFields
      • Territory
      • ReembedRequest
      • TerritoryKind
      • ReembedSummary
      • TerritoryOverview
      • UnbindTeamOutcome
      • UnshareContextOutcome
      • VaultConfig
      • PlanRefusal
      • Scoring
      • WideHit
      • ReblockOutcome
      • OversizedArtifact
      • MetaExpect
      • MetaUpdatePayload
      • PathFacts
      • ResourceErasureExecuteRequest
      • ResourceErasureRefusalReason
      • ResourceErasureSurveyRequest
      • RemoteConnection
      • ViaEntry
      • PreconditionFailure
      • PreconditionTier
      • PublicWithinAudience
      • PublicWithinInRef
      • PublicWithinOpenKind
      • PublicWithinEffects
      • PublicWithinOutcome
      • PublicWithinPolicyOutcome
      • ReviewRequestBody
      • PublicWithinPolicyRequest
      • ReviewRequestWithProfile
      • PublicWithinRef
      • ResourceErasureExecuteResponse
      • PublicWithinRowRef
      • RevokePrincipalBody
      • PublicWithinReach
      • ResourceErasurePlan
      • ResourceErasureSurvey
      • RefusalTeaching
      • Reach
      • ReassignContextOutcome
      • ResourceFilter
      • ReachVia
      • RotateSecretRequest
      • ResourceHit
      • SearchParams
      • RenameTeamSlugOutcome
      • RenameTeamSlugRequest
      • SetToolManifestRequest
      • SetWebhookEventsRequest
      • ReparentRequest
      • RetentionCategory
      • RetentionPolicies
      • RetentionPolicy
      • RefusalReason
      • RetentionPolicySet
      • ScrubFieldKind
      • ScrubbedField
      • RemoveSamlGroupMappingOutcome
      • ReparentOutcome
      • ResourceSortField
      • UpdateSettingsRequest
      • SubscriptionSelector
      • TeamSpec
      • SlackRevocationTally
      • ResourceSection
      • ShapeHome
      • ResourceView
      • ShapeSuccessor
      • RestoreTeamOutcome
      • ResourceUpdateRequest
      • ShapeDeclareRequest
      • ShapeView
      • SetAutoJoinRequest
      • SamlGroupMapping
      • StageTrace
      • ScoreKind
      • TeachingElision
      • SegmentInfo
      • SetAutoJoinOutcome
      • TeamInvitation
      • StandingShape
      • WideArm
      • WideDraw
      • TeamChildRef
      • TeamCreateRequest
      • Vocabulary
      • TeamRef
      • TeamDetail
      • StageResult
      • SystemSettings
      • TeamRow
  • Temper Cloud API
    • Reference
      • API Reference
        • Access
          • Request to join the gating team
          • Check your join request status
          • Withdraw your pending join request
          • Ask an admin to reconsider a revocation
          • Read public system settings
        • Slack Link
          • Disconnect any principal's Slack link
          • Disconnect all your own Slack links
        • Auditor
          • Claim a batch of auditor jobs
          • Survey audit coverage across findings
          • Complete a claimed auditor job
        • Blobs
          • List the blobs the caller can read (optionally scoped to one home)
          • Commit bytes as a blob — one multipart request at or under the D7 threshold
          • Begin a segmented upload — declare the home and media type, get the session id
          • Read a staged upload's progress — the resume read
          • Finalize a staged upload — assemble, hash, commit
          • Append one segment to a staged upload — raw bytes as the request body
          • Read a blob's bytes back, whole, streamed (D6)
          • Delete one blob — the ordinary delete act's ruled door
          • List the edges incident to a blob — "what relates to this blob" (D3)
          • Assert one relation between a blob and another anchor
        • Graph
          • Slice a neighborhood within a cognitive map
          • Read a cognitive map's interior
          • Read a container's composition
          • Read goal-container territories and residuals
          • Read what your work is built around
          • Read your teams and cognitive maps
          • Read the resources composing a region
          • Traverse from where you are
        • Cognitive Maps
          • List cognitive maps you can see
          • Create a cognitive map and its telos charter
          • Get one cognitive map
          • Reconcile a cognitive map's contents
          • Read cognitive-map analytics
          • Grant access to a cognitive map
          • Revoke access to a cognitive map
          • Materialize a cognitive map's regions
          • Read formation drift since last materialize
          • Read per-region metrics for a map
          • Read a cognitive map's shape
          • Bind a team to a cognitive map
          • Unbind a team from a cognitive map
        • Contexts
          • List contexts you can see
          • Create a context
          • Get one context
          • Retire a context
          • Read a context's analytics
          • Materialize a context's regions
          • Read formation drift since a context's last materialize
          • Reassign a context to another owner
          • Read per-region metrics for a context
          • Rename a context
          • Restore a retired context
          • Read a context's shape
          • Share a context with a team
          • Stop sharing a context with a team
        • Data Artifact Shapes
          • List live shapes declared for a context home.
          • Declare a shape for a data-artifact family within a context home.
          • Get a single shape by ID.
        • Events
          • Read the event cursor for a context
          • Read a node or edge's event trail
        • Facets
          • Set a facet on a resource
          • Read the live facets of one edge
          • Set a facet on a relationship
          • Retract one facet of a relationship
          • Read the live facets of one resource
        • Health
          • Check service health
        • Ingest
          • Begin a segmented ingest
          • Update an in-progress ingest
          • List the blocks landed so far
          • Append a block to an in-progress ingest
          • Finalize a segmented ingest
        • Invitations
          • Accept a team invitation
          • Decline a team invitation
          • List invitations addressed to you
          • Count the invitations addressed to you
          • List a team's open invitations
          • Revoke a team invitation
          • Invite someone to a team
        • Invocations
          • List agent invocations
          • Open an invocation
          • Get one invocation
          • Close an invocation
        • Profile
          • Read your profile
          • Update your profile
          • List your linked identity providers
        • Query
          • Run a composition of situated acts
        • Relationships
          • Assert a relationship between resources
          • Fold a relationship
          • Change a relationship's type
          • Change a relationship's weight
        • Resources
          • List resources you can see
          • Create a resource
          • Get one resource
          • Soft-delete a resource
          • Update a resource
          • Read one content block by address (the three-state resolution)
          • List a finding's citation-audit trail
          • Record a citation-audit verdict
          • Read a resource's reconstituted content
          • List a resource's relationships
          • Read a resource's evidential standing
          • Grant access to a resource
          • Revoke access to a resource
          • Trace a resource's derivation lineage
          • Read a resource's block provenance
          • Attach provenance sources to a resource
          • Reassign a resource to another owner
        • Reblocking
          • Run one bounded, resumable re-blocking step
        • Data Artifacts
          • List artifacts for a resource, or counts with counts=true
          • Commit one data artifact to a resource
          • Get a single artifact by ID under its owning resource
        • Meta
          • Read a resource's frontmatter
          • Replace a resource's frontmatter
        • Schema
          • List every document type this instance knows, with a schema summary for each.
          • Describe one document type: its JSON Schema, required fields, closed vocabularies, and a filled-in example of the managed tier.
          • Describe the recognized conventions of the open (caller-defined) metadata tier.
        • Search
          • Search resources by text or embedding
        • Steward
          • List steward candidates
          • Claim steward jobs for a worker
          • Survey steward drift across maps
          • Read a map's ingest delta
          • Advance a map's steward watermark
        • Teams
          • List teams you belong to
          • Create a team
          • Get one team
          • Delete a team
          • Update a team
          • Add a member to a team
          • Remove a member from a team
          • Change a member's role
          • Bulk reassign a team's resources
    • Schemas
      • AcceptInvitationResponse
      • ActInput
      • ActInvocation
      • ActName
      • ActQuantity
      • ActRefusal
      • ActorAuthority
      • AddMemberRequest
      • AdvanceWatermarkAck
      • AdvanceWatermarkRequest
      • AgentAuthorship
      • AnchorAddressResolution
      • AnchorShape
      • AnchorVerdict
      • AppendBlockPayload
      • ArtifactCommitRequest
      • ArtifactCommitResponse
      • ArtifactView
      • AssertRelationshipRequest
      • AtlasEdge
      • AtlasEntry
      • AtlasHome
      • AtlasNode
      • AtlasSubgraph
      • AuditCitation
      • AuditSweepRow
      • AuditorDispatchTickRequest
      • AuditorDispatchTickResponse
      • AuditorJobCompleteAck
      • BindTeamOutcome
      • BindTeamRequest
      • BlobCommitResponse
      • BlobDeleteAck
      • BlobId
      • BlobRelationAck
      • BlobRelationAssertRequest
      • BlobRelationDirection
      • BlobRelationEdgeDirection
      • BlobRelationRow
      • BlobSummary
      • BlobUploadBeginRequest
      • BlobUploadBeginResponse
      • BlobUploadFinalizeRequest
      • BlobUploadProgress
      • BlobUploadSegmentInfo
      • BlockChunkRef
      • BlockFoldDisposition
      • BlockId
      • BlockProvenanceRow
      • BlockRead
      • BlockSuccessor
      • BlocksResponse
      • BodyStorage
      • Bridge
      • BulkReassignAck
      • BulkReassignRequest
      • ChangeRoleRequest
      • CharterBlock
      • CharterDisposition
      • CitationAuditRequest
      • CitationAuditRow
      • ClaimedAuditJob
      • ClaimedJob
      • CloseInvocationRequest
      • CogmapAnalyticsRow
      • CogmapDetail
      • CogmapFoundationRow
      • CogmapGrantBody
      • CogmapId
      • CogmapRegionMetricsRow
      • CogmapRegionRow
      • CogmapRegulationRow
      • CogmapRevokeBody
      • CogmapRow
      • CogmapStaleness
      • CombineNode
      • CombineOp
      • Composition
      • CompositionTrace
      • ConfidenceBand
      • ContentResponse
      • ContextCreateRequest
      • ContextId
      • ContextOwnerRef
      • ContextPanorama
      • ContextRow
      • ContextRowWithCounts
      • CorrelationId
      • CreateCogmapOutcome
      • CreateCogmapRequest
      • CreateInvitationRequest
      • CreateRequestBody
      • CreateReviewBody
      • DataArtifactId
      • DeleteResponse
      • DeviceOverrides
      • DiscouragedOpenMetaKey
      • DispatchTickRequest
      • DispatchTickResponse
      • Disposition
      • DocTypeDescription
      • DocTypeSummary
      • DriftSweepRow
      • EdgeFacetRow
      • EdgeFacetSetRequest
      • EdgeFacetsResponse
      • EdgeFilter
      • EdgeId
      • EdgeKind
      • ElementEvent
      • ElementKind
      • EmbedDispatchSummary
      • EnforcementMode
      • Entitlements
      • EntryBounds
      • ErrorBody
      • ErrorDetail
      • ErrorDetails
      • EventCursorResponse
      • EventTrail
      • ExactArm
      • ExactHit
      • Extent
      • FacetAck
      • FacetPredicate
      • FacetRetractAck
      • FacetSetRequest
      • FinalizePayload
      • FoldRelationshipRequest
      • GrantOutcome
      • GraphEdgeRow
      • GroupKeyMeta
      • HealthResponse
      • HomeCogmap
      • HomeContext
      • IdKind
      • IdProvenance
      • IdSet
      • IdpRevocation
      • IngestCreateResponse
      • IngestDelta
      • IngestPayload
      • IngestState
      • InheritedReadGrant
      • InheritedShare
      • InputSource
      • Intention
      • InvitationStatus
      • InvitationTokenRequest
      • InviteeInvitation
      • InvocationAck
      • InvocationActRow
      • InvocationCloseAck
      • InvocationId
      • InvocationSummary
      • InvocationView
      • JoinRequest
      • JoinRequestStatus
      • KindOwnerInput
      • LensId
      • LineageNode
      • ManagedMeta
      • MatchLocation
      • MaterializeAck
      • MaterializeDelta
      • MaterializeRequest
      • MergePolicy
      • MetaUpdatePayload
      • NarrowedBy
      • NodeHome
      • OpenInvocationRequest
      • OpenMetaConvention
      • OrdOp
      • OrphanNode
      • OutcomeDeclaration
      • PendingInvitationCounts
      • PlanRefusal
      • PlanRefusalDetails
      • Polarity
      • Profile
      • ProfileAuthLink
      • ProfileId
      • ProfileUpdateRequest
      • ProfileWithEntitlements
      • PropertyOp
      • PropertyPredicate
      • ProvenanceSource
      • PublicSystemSettings
      • QuantityScale
      • QueryResponse
      • ReassignAck
      • ReassignContextOutcome
      • ReassignContextRequest
      • ReassignResourceRequest
      • ReblockCandidate
      • ReblockOutcome
      • ReblockReceipt
      • ReblockRequest
      • ReblockScope
      • ReblockSummary
      • ReconcileCogmapRequest
      • ReconcileEdge
      • ReconcileEdgeTombstone
      • ReconcileEntry
      • ReconcileOutcome
      • ReconcileTelos
      • ReconcileTelosBlock
      • ReconcileTombstone
      • Refusal
      • RefusalReason
      • RegionDisclosure
      • RegionHit
      • RegionId
      • RelationshipAck
      • RelationshipTarget
      • RemoveMemberOutcome
      • RenameContextOutcome
      • RenameContextRequest
      • ResidualBucket
      • ResidualContext
      • ResidualGroups
      • ResidualOwnedReach
      • ResourceAnnotateRequest
      • ResourceCreateRequest
      • ResourceFacetRow
      • ResourceFacets
      • ResourceFacetsResponse
      • ResourceFilter
      • ResourceGrantBody
      • ResourceHit
      • ResourceId
      • ResourceLineage
      • ResourceListResponse
      • ResourceRevokeBody
      • ResourceSection
      • ResourceSortField
      • ResourceUpdateRequest
      • ResourceView
      • RestoreContextOutcome
      • RetireContextOutcome
      • ReturnSpec
      • RetypeRelationshipRequest
      • RevokeOutcome
      • ReweightRelationshipRequest
      • ScoreKind
      • Scoring
      • SearchParams
      • SearchReason
      • SearchResponse
      • SearchResultRow
      • SearchScope
      • SearchScopeInfo
      • SegmentInfo
      • SegmentedBegin
      • SegmentedBeginResponse
      • ShapeDeclareRequest
      • ShapeEmptiness
      • ShapeId
      • ShapeView
      • ShareContextOutcome
      • ShareContextRequest
      • SlackDisconnectRequest
      • SlackDisconnectResponse
      • SlackDisconnectedPrincipal
      • SliceRequest
      • SortOrder
      • StageDisposition
      • StageInput
      • StageInputTrace
      • StageName
      • StageNode
      • StageOutput
      • StageRelation
      • StageResult
      • StageTrace
      • Standing
      • StandingShape
      • Subscription
      • SubscriptionOverride
      • SystemAccessDetails
      • TeamCreateRequest
      • TeamDetail
      • TeamInvitation
      • TeamMemberDetail
      • TeamMemberRow
      • TeamMemberSource
      • TeamRole
      • TeamRow
      • TeamUpdateRequest
      • Territory
      • TerritoryKind
      • TerritoryOverview
      • UnbindTeamOutcome
      • UnshareContextOutcome
      • VaultConfig
      • ViaEntry
      • WideArm
      • WideHit
  • Temper Cloud API
    • Reference
      • API Reference
        • Admin
          • Reconcile auto-join team rosters
          • Revoke a profile's system-admin grant
          • Approve a principal
          • Deactivate a principal
          • Reactivate a principal
          • Revoke a principal's admission
          • List profiles in the operator directory
          • Show a profile's state card
          • Promote a profile to system admin
          • List pending join requests
          • Count pending join requests
          • Approve or reject a join request
          • List open reconsideration requests
          • Count open reconsideration requests
          • Close a reconsideration request
          • Read full system settings
          • Update system settings
          • Erase a principal
          • Survey a principal erasure
          • Scrub the history of resource blocks
          • Survey a block history scrub
          • Erase a resource
          • Survey a resource erasure
          • Re-embed stale chunks
          • Rebind a machine client to a new client ID
        • Access
          • Request to join the gating team
          • Check your join request status
          • Withdraw your pending join request
          • Ask an admin to reconsider a revocation
          • Read public system settings
        • Admin Ledger
          • Read the admin ledger
        • Slack Link
          • Disconnect any principal's Slack link
          • Disconnect all your own Slack links
        • Auditor
          • Claim a batch of auditor jobs
          • Survey audit coverage across findings
          • Complete a claimed auditor job
        • Blobs
          • List the blobs the caller can read (optionally scoped to one home)
          • Commit bytes as a blob — one multipart request at or under the D7 threshold
          • Begin a segmented upload — declare the home and media type, get the session id
          • Read a staged upload's progress — the resume read
          • Finalize a staged upload — assemble, hash, commit
          • Append one segment to a staged upload — raw bytes as the request body
          • Read a blob's bytes back, whole, streamed (D6)
          • Delete one blob — the ordinary delete act's ruled door
          • List the edges incident to a blob — "what relates to this blob" (D3)
          • Assert one relation between a blob and another anchor
        • Resources
          • Record a citation-audit verdict against a block's citation
          • List resources you can see
          • Create a resource
          • Get one resource
          • Soft-delete a resource
          • Update a resource
          • Read one content block by address (the three-state resolution)
          • List a finding's citation-audit trail
          • Record a citation-audit verdict
          • List a resource's relationships, bounded, with the filtered total stated
          • Read a resource's reconstituted content
          • List a resource's relationships
          • Read a resource's evidential standing
          • Grant access to a resource
          • Revoke access to a resource
          • Trace a resource's derivation lineage
          • Read a resource's block provenance
          • Attach provenance sources to a resource
          • Reassign a resource to another owner
        • Graph
          • Slice a neighborhood within a cognitive map
          • Read a cognitive map's interior
          • Read a container's composition
          • Read goal-container territories and residuals
          • Read what your work is built around
          • Read your teams and cognitive maps
          • Read the resources composing a region
          • Traverse from where you are
        • Cognitive Maps
          • List cognitive maps you can see
          • Create a cognitive map and its telos charter
          • Get one cognitive map
          • Reconcile a cognitive map's contents
          • Read cognitive-map analytics
          • Grant access to a cognitive map
          • Revoke access to a cognitive map
          • Materialize a cognitive map's regions
          • Read formation drift since last materialize
          • Read per-region metrics for a map
          • Read a cognitive map's shape
          • Bind a team to a cognitive map
          • Unbind a team from a cognitive map
        • Data Artifact Shapes
          • List live shapes declared for a cognitive-map home.
          • Declare a shape for a data-artifact family within a cognitive-map home.
          • List live shapes declared for a context home.
          • Declare a shape for a data-artifact family within a context home.
          • Get a single shape by ID.
        • Connections
          • List connections
          • Provision a connection
          • Get a connection
          • Revoke a connection
          • Attach a connection credential
          • Grant a team read-reach on a connection
          • Revoke a team's read-reach on a connection
          • Set connection tool manifest
          • Set connection webhook events
        • Contexts
          • List contexts you can see
          • Create a context
          • Resolve a context ref to its id
          • Get one context
          • Retire a context
          • Read a context's analytics
          • Materialize a context's regions
          • Read formation drift since a context's last materialize
          • Reassign a context to another owner
          • Read per-region metrics for a context
          • Rename a context
          • Restore a retired context
          • Read a context's shape
          • Share a context with a team
          • Stop sharing a context with a team
        • Data Artifacts
          • Get a single artifact by ID — the flat read.
          • List artifacts for a resource, or counts with counts=true
          • Commit one data artifact to a resource
          • Get a single artifact by ID under its owning resource
        • Events
          • Read the event cursor for a context
          • Read a node or edge's event trail
        • Facets
          • Set a facet on a resource
          • Read the live facets of one edge
          • Set a facet on a relationship
          • Retract one facet of a relationship
          • Read the live facets of one resource
        • Health
          • Check service health
        • Ingest
          • Begin a segmented ingest
          • Update an in-progress ingest
          • List the blocks landed so far
          • Append a block to an in-progress ingest
          • Finalize a segmented ingest
        • Invitations
          • Accept a team invitation
          • Decline a team invitation
          • List invitations addressed to you
          • Count the invitations addressed to you
          • List a team's open invitations
          • Revoke a team invitation
          • Invite someone to a team
        • Invocations
          • List agent invocations
          • Open an invocation
          • Get one invocation
          • Close an invocation
        • Machine Clients
          • List machine clients
          • Register a machine client
          • Issue a machine credential
          • Get a machine client
          • Revoke a machine client
          • Rotate a machine client secret
        • Profile
          • Read your profile
          • Update your profile
          • List your linked identity providers
        • Query
          • Run a composition of situated acts
        • Relationships
          • Assert a relationship between resources
          • Fold a relationship
          • Change a relationship's type
          • Change a relationship's weight
        • Reblocking
          • Run one bounded, resumable re-blocking step
        • Meta
          • Read a resource's frontmatter
          • Replace a resource's frontmatter
        • Schema
          • List every document type this instance knows, with a schema summary for each.
          • Describe one document type: its JSON Schema, required fields, closed vocabularies, and a filled-in example of the managed tier.
          • Describe the recognized conventions of the open (caller-defined) metadata tier.
        • Search
          • Search resources by text or embedding
        • Steward
          • List steward candidates
          • Claim steward jobs for a worker
          • Survey steward drift across maps
          • Read a map's ingest delta
          • Advance a map's steward watermark
        • Subscriptions
          • List subscriptions
          • Create a subscription
          • Get a subscription
          • Revoke a subscription
        • Teams
          • List teams you belong to
          • Create a team
          • Get one team
          • Delete a team
          • Update a team
          • Add a member to a team
          • Remove a member from a team
          • Change a member's role
          • Bulk reassign a team's resources
    • Schemas
      • AcceptInvitationResponse
      • ActInput
      • ActInvocation
      • ActName
      • ActQuantity
      • ActRefusal
      • ActorAuthority
      • AddMemberRequest
      • AdminDirectoryEntry
      • AdminDirectoryListResponse
      • AdminLedgerEntry
      • AdminLedgerResponse
      • AdminOpenJoinRequest
      • AdminOpenReviewRequest
      • AdminProfileAuthLink
      • AdminProfileCard
      • AdminProfileInvitation
      • AdminProfileTeamMembership
      • AdminProfilesListAnswer
      • AdvanceWatermarkAck
      • AdvanceWatermarkRequest
      • AgentAuthorship
      • AnchorAddressResolution
      • AnchorShape
      • AnchorVerdict
      • AppendBlockPayload
      • ArtifactCommitRequest
      • ArtifactCommitResponse
      • ArtifactView
      • AssertRelationshipRequest
      • AtlasEdge
      • AtlasEntry
      • AtlasHome
      • AtlasNode
      • AtlasSubgraph
      • AttachCredentialResponse
      • AuditCitation
      • AuditSweepRow
      • AuditorDispatchTickRequest
      • AuditorDispatchTickResponse
      • AuditorJobCompleteAck
      • AutoJoinReconcileRow
      • BindTeamOutcome
      • BindTeamRequest
      • BlobCoLinks
      • BlobCommitResponse
      • BlobDeleteAck
      • BlobId
      • BlobRelationAck
      • BlobRelationAssertRequest
      • BlobRelationDirection
      • BlobRelationEdgeDirection
      • BlobRelationRow
      • BlobStrikeView
      • BlobSummary
      • BlobUploadBeginRequest
      • BlobUploadBeginResponse
      • BlobUploadFinalizeRequest
      • BlobUploadProgress
      • BlobUploadSegmentInfo
      • BlockChunkRef
      • BlockCitationAuditRequest
      • BlockFoldDisposition
      • BlockHistoryScrubExecuteResponse
      • BlockHistoryScrubPlan
      • BlockHistoryScrubRequestBody
      • BlockHistoryScrubSurvey
      • BlockId
      • BlockProvenanceRow
      • BlockRead
      • BlockScrubCount
      • BlockSuccessor
      • BlocksResponse
      • BodyStorage
      • Bridge
      • BulkReassignAck
      • BulkReassignRequest
      • ChangeRoleRequest
      • CharterBlock
      • CharterDisposition
      • CitationAuditRequest
      • CitationAuditRow
      • ClaimedAuditJob
      • ClaimedJob
      • CloseInvocationRequest
      • CloseReviewBody
      • CogmapAnalyticsRow
      • CogmapDetail
      • CogmapFoundationRow
      • CogmapGrantBody
      • CogmapId
      • CogmapRegionMetricsRow
      • CogmapRegionRow
      • CogmapRegulationRow
      • CogmapRevokeBody
      • CogmapRow
      • CogmapStaleness
      • CombineNode
      • CombineOp
      • Composition
      • CompositionTrace
      • ConfidenceBand
      • ConnectionCredential
      • ConnectionSubscription
      • ContentResponse
      • ContextCreateRequest
      • ContextId
      • ContextOwnerRef
      • ContextPanorama
      • ContextResolution
      • ContextRow
      • ContextRowWithCounts
      • CorrelationId
      • CreateCogmapOutcome
      • CreateCogmapRequest
      • CreateInvitationRequest
      • CreateRequestBody
      • CreateReviewBody
      • CreateSubscriptionRequest
      • CredentialVerification
      • DataArtifactId
      • DeleteResponse
      • DemoteAdminRequest
      • DeviceOverrides
      • DiscouragedOpenMetaKey
      • DispatchTickRequest
      • DispatchTickResponse
      • Disposition
      • DocTypeDescription
      • DocTypeSummary
      • DriftSweepRow
      • EdgeFacetRow
      • EdgeFacetSetRequest
      • EdgeFacetsResponse
      • EdgeFilter
      • EdgeId
      • EdgeKind
      • ElementEvent
      • ElementKind
      • EmbedDispatchSummary
      • EmbeddingStatus
      • EnforcementMode
      • Entitlements
      • EntryBounds
      • ErasureExecuteRequest
      • ErasureExecuteResponse
      • ErasureSurveyRequest
      • ErasureSurveyResponse
      • ErasureTargetOutcome
      • ErrorBody
      • ErrorDetail
      • ErrorDetails
      • EventCursorResponse
      • EventId
      • EventTrail
      • ExactArm
      • ExactHit
      • Extent
      • FacetAck
      • FacetPredicate
      • FacetRetractAck
      • FacetSetRequest
      • FinalizePayload
      • FoldRelationshipRequest
      • GrantConnectionReachRequest
      • GrantOutcome
      • GrantSpec
      • GraphEdgeRow
      • GroupKeyMeta
      • HealthResponse
      • HomeCogmap
      • HomeContext
      • IdKind
      • IdProvenance
      • IdSet
      • IdpRevocation
      • IngestCreateResponse
      • IngestDelta
      • IngestEnded
      • IngestPayload
      • IngestState
      • InheritedReadGrant
      • InheritedShare
      • InputSource
      • Intention
      • InvitationStatus
      • InvitationTokenRequest
      • InviteeInvitation
      • InvocationAck
      • InvocationActRow
      • InvocationCloseAck
      • InvocationId
      • InvocationSummary
      • InvocationView
      • IssueMachineRequest
      • IssuedMachineCredential
      • JoinRequest
      • JoinRequestStatus
      • JoinRequestWithProfile
      • KindOwnerInput
      • LedgerRef
      • LedgerRefKind
      • LedgerRefRel
      • LedgerRefTarget
      • LensId
      • LineageNode
      • MachineClient
      • ManagedMeta
      • MatchLocation
      • MaterializeAck
      • MaterializeDelta
      • MaterializeRequest
      • MergePolicy
      • MetaUpdatePayload
      • NarrowedBy
      • NodeHome
      • OpenInvocationRequest
      • OpenMetaConvention
      • OrdOp
      • OrphanNode
      • OtherAuthorEdge
      • OtherAuthorEdgeProperty
      • OutcomeDeclaration
      • PendingInvitationCounts
      • PlanRefusal
      • PlanRefusalDetails
      • Polarity
      • Profile
      • ProfileAuthLink
      • ProfileId
      • ProfileUpdateRequest
      • ProfileWithEntitlements
      • PromoteAdminRequest
      • PropertyId
      • PropertyOp
      • PropertyPredicate
      • ProvenanceSource
      • ProvisionConnectionRequest
      • ProvisionMachineRequest
      • PublicSystemSettings
      • QuantityScale
      • QueryResponse
      • QueueCount
      • ReassignAck
      • ReassignContextOutcome
      • ReassignContextRequest
      • ReassignResourceRequest
      • RebindMachineRequest
      • ReblockCandidate
      • ReblockOutcome
      • ReblockReceipt
      • ReblockRequest
      • ReblockScope
      • ReblockSummary
      • ReconcileAutoJoinOutcome
      • ReconcileCogmapRequest
      • ReconcileEdge
      • ReconcileEdgeTombstone
      • ReconcileEntry
      • ReconcileOutcome
      • ReconcileTelos
      • ReconcileTelosBlock
      • ReconcileTombstone
      • RedactedEventFields
      • ReembedRequest
      • ReembedSummary
      • Refusal
      • RefusalReason
      • RegionDisclosure
      • RegionHit
      • RegionId
      • RelationshipAck
      • RelationshipTarget
      • RemoteConnection
      • RemoveMemberOutcome
      • RenameContextOutcome
      • RenameContextRequest
      • ResidualBucket
      • ResidualContext
      • ResidualGroups
      • ResidualOwnedReach
      • ResourceAnnotateRequest
      • ResourceConnections
      • ResourceCreateRequest
      • ResourceErasureExecuteRequest
      • ResourceErasureExecuteResponse
      • ResourceErasurePlan
      • ResourceErasureRefusalReason
      • ResourceErasureSurvey
      • ResourceErasureSurveyRequest
      • ResourceFacetRow
      • ResourceFacets
      • ResourceFacetsResponse
      • ResourceFilter
      • ResourceGrantBody
      • ResourceHit
      • ResourceId
      • ResourceLineage
      • ResourceListResponse
      • ResourceRevokeBody
      • ResourceSection
      • ResourceSortField
      • ResourceUpdateRequest
      • ResourceView
      • RestoreContextOutcome
      • RetireContextOutcome
      • ReturnSpec
      • RetypeRelationshipRequest
      • ReviewRequestBody
      • ReviewRequestWithProfile
      • RevokeOutcome
      • RevokePrincipalBody
      • ReweightRelationshipRequest
      • RotateSecretRequest
      • ScoreKind
      • Scoring
      • SearchParams
      • SearchReason
      • SearchResponse
      • SearchResultRow
      • SearchScope
      • SearchScopeInfo
      • SegmentInfo
      • SegmentedBegin
      • SegmentedBeginResponse
      • SetToolManifestRequest
      • SetWebhookEventsRequest
      • ShapeDeclareRequest
      • ShapeEmptiness
      • ShapeId
      • ShapeView
      • ShareContextOutcome
      • ShareContextRequest
      • SlackDisconnectRequest
      • SlackDisconnectResponse
      • SlackDisconnectedPrincipal
      • SliceRequest
      • SortOrder
      • StageDisposition
      • StageInput
      • StageInputTrace
      • StageName
      • StageNode
      • StageOutput
      • StageRelation
      • StageResult
      • StageTrace
      • Standing
      • StandingShape
      • Subscription
      • SubscriptionOverride
      • SubscriptionSelector
      • SystemAccessDetails
      • SystemSettings
      • TeamCreateRequest
      • TeamDetail
      • TeamInvitation
      • TeamMemberDetail
      • TeamMemberRow
      • TeamMemberSource
      • TeamRole
      • TeamRow
      • TeamSpec
      • TeamUpdateRequest
      • Territory
      • TerritoryKind
      • TerritoryOverview
      • UnbindTeamOutcome
      • UnshareContextOutcome
      • UpdateSettingsRequest
      • VaultConfig
      • ViaEntry
      • WideArm
      • WideHit
  1. concepts

Slack Identity and Revocation

For operators and integrators — anyone who needs to reason about how a
Slack mention becomes a Temper action, what credentials are retained, and what
revocation actually stops.

What the Slack integration does#

A Slack human mentions @temper in a channel. The mention agent — an eve app
that watches Slack — asks Temper whether that Slack principal is linked to a
Temper profile, and if so, mints an access token that acts as that human under
their own reach: their contexts, their resources, nobody else's. Nothing is
inferred, matched, or auto-provisioned. The link is established once, in a
browser, by the human's own consent.
The trust boundary this crosses is the same two-gate boundary every Temper call
crosses — see the trust boundary. The Slack path adds
its own inbound boundary (Slack to the agent, verified by Slack's request
signature) and an internal boundary (agent to Temper, verified by a shared HMAC
secret), but a minted token then re-enters through the ordinary front door:
full JWKS validation, standard visibility predicates. The Slack path gets no
shortcut.

The principal is an opaque string#

A Slack principal is an opaque string with two to four segments, because the
team id is nullable and bots carry an extra segment:
team idauthorprincipalIdprincipalType
yeshumanslack:<team>:<user>user
yesbotslack:<team>:bot:<user>service
nohumanslack:<user>user
nobotslack:bot:<user>service
The string is treated as opaque everywhere — stored whole, compared whole,
logged whole. Temper deliberately never splits it on :. Only a human principal
(principalType === "user") is admitted; bots surface as service and are
dropped. The human gate is written positively, so a principal type added by the
framework later is refused by default rather than admitted by accident.

The binding lives in the identity table#

The link row maps (auth_provider = 'slack', auth_provider_user_id = <the whole principal>) to a profile_id, with a uniqueness constraint that means a
principal binds to exactly one profile.
The principal binds once. There is no rebind: a link attempt for a principal
already bound to a different profile is refused atomically — nothing is written.
"Start fresh" is an explicit disconnect, never a side effect of linking again.
The identity row holds no secret and must never grow one. Identity and
secret are deliberately separated: the secret lives in a separate table,
encrypted at rest.

Why the link is keyed on the principal, not email#

Because there is no email on the Slack wire. The mention agent transmits exactly
one field to Temper on both internal routes: {"slack_principal_id": "..."}.
No email field exists to read. The link row records this by leaving email
NULL.
An email-based auto-link is therefore not merely undesirable — it is not
expressible with what arrives. The email the flow does use is the one on the
IdP's token during the browser callback, which is a different channel entirely
and carries the user's own consent.

Linking is lookup-only#

The OAuth callback resolves the freshly-exchanged access token through a
lookup-only path — it resolves an existing profile or refuses. It never
auto-provisions one. Linking an existing identity is not a registration route:
a stray click does not mint an account or confer team reach.

What credentials are retained#

When a human completes the browser link, Temper stores two things, deliberately
separated:
1.
The identity row — auth_provider = 'slack', the opaque principal, the
profile_id. This row holds no secret.
2.
The encrypted grant — the human's refresh token (their independent grant
from their own consent, never a copy of anyone's CLI token), sealed with
XChaCha20-Poly1305. The database never sees the encryption key or any
plaintext token. Each ciphertext is additionally bound to its principal, so
a stolen database row cannot be replayed under another user.
A short-lived cached access token may also be present on the vault row; it is
derived from the refresh token and expires within the IdP's access-token TTL.
The encryption key is a single AEAD key held in the platform's secret store,
never in the database. Rotation is a flag day: changing the key makes every
stored grant unreadable, and affected users re-link.
Three other secrets are in play but are not retained — they authenticate
calls, not people:
The Slack bot token and Slack signing secret live on the agent only;
Temper never sees them.
The link secret and mint secret are shared HMAC keys that gate
agent-to-Temper calls. The link secret answers "is this principal linked?";
the mint secret gates the endpoint that vends an act-as-the-human token. They
are deliberately different values, because one answers a question and the
other confers reach.

The relationship between Slack identity and Temper profiles#

A Slack principal is not a Temper profile. It is an auth link — a binding from
an external identity to an existing profile. The profile existed before the link
(linking is lookup-only), and it persists after a disconnect (disconnect is not
deactivation). One profile may hold auth links from multiple providers; one
Slack principal maps to exactly one profile.
This is the same identity model described in
auth identity: Temper validates tokens from exactly one
issuer, and a Slack-minted token is a JWT from that issuer, carrying the linked
human's profile. What differs is how the token is obtained — a credential
exchange against a vaulted grant, not a browser login.

Revocation: what disconnect actually stops#

This is the section to read before treating disconnect as an offboarding
control.
temper slack disconnect (self-serve) and temper admin slack disconnect <principal> (operator) both run one chokepoint that:
Deletes the identity row — the principal is unlinked from its profile.
Destroys the encrypted grant — the vault row is deleted, not flagged. The
sealed refresh token stops existing.
Sweeps pending link intents for that principal — a security step, because
disconnect removes the no-rebind guarantee, and an intent minted just before
it would otherwise survive as a live first-link URL for a now-unlinked
principal.
Attempts to revoke the grant at the identity provider — best-effort under
an external IdP, atomic under the Temper AS.

What disconnect does NOT do#

It is not deactivation. The profile, its team memberships, and its
resources are untouched.
It is not an instant cutoff. Disconnect stops future token mints; an
access token already issued stays valid until its own expiry (up to the IdP's
access-token TTL, commonly one hour). Token validation is stateless JWKS —
there is no revocation list and no consultation of the grant vault. The vault
governs minting; it has no say over a token already minted.
It does not uninstall the Slack app. That is workspace-level and
admin-only, which is precisely why a per-user disconnect has to exist.
"Disconnected" means "cannot mint again." It does not mean "cannot act."
To actually cut someone off, deactivate the profile — that is enforced per
request, at latency zero, on every surface. The mint path checks the profile's
principal standing (kb_principal_standing) before decrypting anything, and the
auth seam refuses a token whose profile is deactivated.

How long an issued token survives#

The token's real validity is the JWT's own exp, set by the IdP when it minted
the token. Temper does not control it. The exposure window is the IdP's
access-token TTL — commonly one hour — and Temper cannot shorten it after the
fact.

IdP revocation failure#

Under an external IdP, revocation is best-effort. If it fails, the disconnect
still succeeds — the local grant is destroyed either way, so Temper can no
longer use it. The grant may remain live at the IdP until it expires; revoke it
from the IdP dashboard if that matters. Under the Temper AS, revocation is local
and happens in the same transaction as the deletes, so it cannot fail this way.

After a vault key rotation#

Rotating the encryption key makes every pre-rotation ciphertext unopenable —
that is the point. Disconnect still works: it destroys the identity row, the
grant row, and the intents, and reports that no IdP revocation was attempted
(it could not open the token). Revoke those grants at the IdP out-of-band.
Failing the disconnect here would be strictly worse: the situation that
motivates a key rotation is a compromise, which is exactly when the unbind lever
must work.
Temper deliberately does not keep the token around to retry revocation later —
doing so would preserve the exact secret the user just asked it to destroy.
A mention after a rotation depends on whether you declared it. A wrong key
and a deliberately rotated one fail the same way when Temper tries to open a
grant. Telling them apart matters: a wrong key is fixed for every user at once
by deploying the right one, so Temper must not offer users a reconnect that
would overwrite grants the right key could still open. So each stored grant
records a fingerprint of the key that sealed it: a short, non-secret identifier
that Temper logs at boot as slack vault key fingerprint: …. When a grant will
not open, the mint compares that fingerprint with the configured key and the
keys you have retired:
The grant was sealed underMention result
a key you listed in SLACK_VAULT_RETIRED_KEY_FINGERPRINTS"reconnect here", with a fresh link. The user re-links from Slack.
the configured key, yet it will not open (a tampered row)"reconnect here". An error is logged: investigate the row.
any other keyan error (HTTP 500), and the grant is left untouched. The log names both fingerprints. Deploy the right key and every such grant works again.
To rotate on purpose, copy the old key's fingerprint from the boot log (or run
SELECT DISTINCT encode(key_fingerprint, 'hex') FROM kb_slack_grant_vault)
before you change the key. Then set it in SLACK_VAULT_RETIRED_KEY_FINGERPRINTS
alongside the new key. Grants sealed before fingerprints existed get one the
first time they are used. If any are still unstamped when you rotate, add the
word unstamped to the list.
If some users re-linked while a wrong key was deployed, their new grants carry
the wrong key's fingerprint. After you restore the right key, retire that
fingerprint and those users are offered a reconnect.

Reconnecting#

Just mention @temper again. The principal is unlinked, so the normal flow
offers a fresh authorize URL — there is no special reconnect path.

Further reading#

The trust boundary the Slack path crosses:
The Trust Boundary.
The auth-identity contract the minted token satisfies:
Auth Identity.
Governance and administration (profile deactivation, admin disconnect):
temperkb.io/operating/governance-and-administration.
Modified at 2026-11-15 01:09:09
Previous
The SAML Reconcile Channel
Next
Teams and Roles
Built with