1. sdks
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. sdks

Integrating Ruby with temper-rb

For integrators. How to call Temper from a Rails application: which credential a Puma request uses, which one a
Sidekiq job uses, why the two write under different names, and what happens between minting a
machine credential and your first successful write.
Audience: a Ruby developer wiring temper-rb into a Rails app — a web tier serving signed-in
users and a background tier doing unattended work.
Scope: the SDK's own behaviour — credentials, the token lifecycle, attribution, the error
taxonomy — plus the onboarding cliff you hit the first time a machine principal calls the API. The
operator's side of a machine credential (who may mint one, reach containment, revocation) is
standing-up-a-machine-credential; this guide points at it rather than restating it.
Every pattern below is pinned by a spec in clients/temper-rb/spec/, and CI runs that suite (rubocop, rspec, codegen-drift checks) on every change to the gem. Where a claim rests on
server behaviour rather than the gem's, this guide says so.

Install and configure#

Ruby >= 3.1. There is no native extension — one source gem, no compiler on the install box.
The connection is process-global and memoized: one ApiClient, one Faraday connection, one
net-http-persistent pool. The token is per call, resolved from fiber-local storage at request
time. That split is the whole design — a fresh client per request would mean a fresh TLS handshake
per request, and a shared client with a shared token would leak one user's token into another
user's call.
A token never escapes its call. Temper.with_token restores the previous value on the way
out — including when the block raises — and a thread spawned inside a token scope sees no
token at all
. Do not hand a Temper::Client to a thread and expect its credential to travel.

The two callers#

Which credential you construct is determined by who is acting, and it is your explicit choice —
the gem never sniffs the environment to decide.
Puma requestSidekiq / ActiveJob worker
Who is actinga signed-in humanthe application itself
ClassTemper::Credentials::BearerTokenTemper::Credentials::ClientCredentials
Where the token comes fromthe user's session — you already hold itthe SDK mints it, client_credentials grant
I/O at constructionnonenone; the first mint is lazy, on first use
Can it refresh?no — refresh! raises Unauthorizedyes — mints, caches, re-mints
Writes land asthe user's profilethe machine's agent profile

A Puma request — a token the caller already holds#

A BearerToken does no I/O and cannot refresh — refresh! raises Unauthorized rather than
attempting a mint. That is deliberate, not an omission: a user's token is not the application's to
re-mint. On a 401 the exception propagates on the first request, with no retry.

A Sidekiq worker — a machine principal#

Every field is required to be a non-empty String, and a missing one raises ArgumentError at
construction. The credential throws rather than defaulting — a machine that boots with a blank
secret and discovers it on its first write is strictly worse than one that refuses to boot.
audience is the one exception: it is optional, because it is Auth0's, not the protocol's. Absent
is a supported configuration; present-and-empty is still a caller bug and raises.

The two mint paths#

Temper can be fronted by two different issuers, and ClientCredentials works against both. The
only thing that changes is your config.
Auth0-issued (temper admin machine provision)Temper-issued (temper admin machine issue)
Who holds the secretyour Auth0 tenantTemper — it is the authorization server
client_idthe Auth0 M2M application's client idminted by Temper, prefixed tmpr_
client_secretfrom Auth0printed once at issue; stored only as a hash
token_urlyour Auth0 tenant's /oauth/tokenyour own instance's /oauth/token
audiencerequired — must equal the API's AUTH_AUDIENCEomit it
Rotate the secret withAuth0 (no Temper action needed)temper admin machine rotate-secret
The request itself is identical on both paths, and that is the point: the SDK sends a
form-encoded body (application/x-www-form-urlencoded), which RFC 6749 §4 mandates at the token
endpoint. Auth0 also tolerates JSON; Temper's own authorization server reads the body with
req.formData() and does not. Form-encoding is the shape both accept.
Omit audience for a temper-issued credential — do not pass an empty string. Temper's AS mints
with its server-side AS_AUDIENCE and ignores a request-supplied audience entirely, so the SDK
leaves the parameter off the wire rather than sending a lie. Passing audience: '' raises at
construction.
The wire shape is pinned as a cross-language contract at tests/contracts/m2m-token-request.json,
asserted from both ends — the gem's spec proves it emits that shape, and temper-cloud's integration
test proves the AS accepts it. Neither test alone would catch a mismatch, which is exactly how the
gem once shipped a JSON mint against a form parser with both suites green.

The token lifecycle you get for free#

ClientCredentials is not a thin wrapper over a POST. Three behaviours come with it, each of them a
bug that a hand-rolled minter tends to ship.
BehaviourWhat it doesWhy
Absolute-expiry cachecaches until 60s before the token's absolute expirya duration cannot survive being cached; only an absolute expires_at can
Mutex-guarded mintmany threads racing a cold cache mint onceunder Puma every in-flight thread hits expiry together
Re-mint on 401re-mints once and retries the call, then gives upa job holding a token across a long unit of work outlives it
Refresh-ahead-of-expiry alone is not sufficient, and this is the subtle one. A worker resolves its
token at the top of a long unit of work; the token expires mid-job; the next call takes a 401 that no
amount of expiry-checking recovers. So the client repairs a 401 by re-minting once and replaying
the request — for reads and writes alike, because re-authenticating is not re-submitting. A second
401 raises.
A BearerToken takes no part in any of this: refresh! raises, so the repair path terminates
immediately and the Unauthorized propagates out of refresh! itself. One request, one exception.

Attribution across the enqueue boundary#

A Puma request writes as the signed-in user. The Sidekiq job it enqueues writes as the machine
principal
— a different profile, with different reach. So a single logical operation that spans the
enqueue boundary lands in the ledger under two different authors:
Where the write happensCredentialAuthor
the Puma requestBearerToken (the user's token)dana@sdk
the Sidekiq job it enqueuedClientCredentials (the machine)acme-app@sdk
That is honest, not a bug. The machine really did make the second write; the user was not in the
room. Attributing it to the user would be a lie the ledger cannot later distinguish from the truth.
What stitches the two together is a caller-supplied correlation id — a bare UUID that outlives any
credential. Mint it in the request, serialize it into the job arguments, stamp it again in the worker.
Temper::Act renames correlation: to the wire key correlation_id (and invocation: to
invocation_id) for you. The act's keys flatten into the write body — and onto the query string
for a delete, which takes its act context as query parameters rather than a body.
Correlation is provenance, never authorization. Nothing gates on it, and an act that supplies none
self-roots to its own event id — so you may always omit it. That is why Act accepts correlation:
with no confidence:, while it refuses reasoning:, rationale:, persona:, or model: without
one: those are authorship, the server's AgentAuthorship.confidence is non-optional, and the call
would earn a 400. The gem rejects it locally instead of paying the round trip.
The gem also stamps X-Temper-Surface: sdk on every request for you — once, on the client, not per
call. That is where the @sdk suffix on both author names comes from.

Errors, and what retries#

Every exception is a Temper::Error carrying #status, #code, #message, and #details.
Temper::Error
├─ Temper::TransientError          # let it escape → Sidekiq retries
│  ├─ RateLimited      (429, #retry_after)
│  ├─ ServerError      (5xx)
│  └─ ConnectionError  (timeout / refused)
└─ Temper::PermanentError          # rescue it → dead-letter
   ├─ Unauthorized     (401)
   ├─ Forbidden        (403)
   │  └─ SystemAccessRequired      (403 with code SYSTEM_ACCESS_REQUIRED)
   ├─ NotFound         (404)
   ├─ Conflict         (409)
   └─ BadRequest       (400 / 422)
The split is load-bearing, not decorative. Sidekiq retries a job whose exception escapes, so a 409
classified transient would spin forever and a 503 classified permanent would be silently dropped.
CallOn a TransientErrorOn a PermanentError
Idempotent read (show, list, search, whoami)retried, 3 attempts, backoff 200ms then 400msraised on the first attempt
Write (create, update, delete, assert_relationship, set_facet)never auto-retried — raisedraised
Writes are never auto-retried, even on a 503. The SDK classifies; it does not decide to
re-submit. Retrying a write it cannot prove failed is how you get two postmortems. A 401 is the one
exception, and it is not a re-submission — re-minting a token and replaying the call is repairing
authentication, not retrying the operation.
Two classifications are not derivable from the HTTP status alone:
SystemAccessRequired discriminates off error.code == "SYSTEM_ACCESS_REQUIRED", not off the
403. A plain 403 maps to Forbidden. It means the caller authenticated but has no reach — the
machine profile exists and is registered, and is missing a grant.
ConnectionError is inferred from an ApiError with a nil status. The generated client
rescues Faraday timeouts and connection failures and re-raises them code-less; without that branch
every timeout would fall through to a bare Temper::Error and Sidekiq would dead-letter it.
A response that is not the server's {"error":{code,message,details}} envelope — an HTML 502 from a
proxy, say — degrades to a raw body on #details rather than raising inside the error path.

Going live#

Authentication is not authorization. This is the wall every new machine caller hits, and it hits
it in two stages.
A valid M2M token — one your issuer happily minted, correctly signed, correctly audienced — gets you a
clean 401 until someone registers your client_id with the instance:
machine client 'k3Fq9xZ' is not registered with this instance.
An administrator must run: temper admin machine provision --client-id k3Fq9xZ --label <label>
Temper keeps a registration allowlist and the gate is lookup-or-reject — there is no first-call
auto-provisioning. The SDK classifies that 401 as a PermanentError, so a Sidekiq worker
dead-letters it rather than retrying forever against a wall.
Once registered, you clear authentication and meet the second wall: a 403
(SystemAccessRequired) on anything you have no reach for. Registration creates the agent profile;
it does not, by itself, grant it anything.

Register the client, and grant its reach, in one command#

Both mint paths register in the same step that mints. Reach is plural and explicit — repeat
--team and --cogmap — and is never inferred from --owner-team, which records who owns the
machine and is never consulted for authorization.
Each --team <ref>[:role] gives the machine team membership (role defaults to member) for read
reach. Each --cogmap <ref>[:ro] applies a cogmap write grant on that map (:ro for read-only).
This is not necessarily an operator ticket. Minting is authorized by is_system_admin or
ownership of the team that will own the machine — so a team owner can register their own team's
machine
with no admin in the loop, bounded to reach they could already confer on a human. A
teamless machine (no --owner-team) is admin-only, because the empty owning team fails closed.
The full rule, and what a team owner may and may not confer, is
standing-up-a-machine-credential.

Assert it at boot, not on the first write#

An unregistered client surfaces as Unauthorized naming the client id. A
registered-but-under-granted one surfaces as Forbidden / SystemAccessRequired naming the
missing grant. Both come from the server's error.details — you get the diagnosis, not a bare 4xx.

Rotation — two different operations#

These are not the same thing and conflating them will cost you your authorship history.
rotate-secretrebind
What changesthe secret — same client_ida new client_id, same agent profile
Fora temper-issued (tmpr_) credentialrotating the external IdP application behind an Auth0 machine
Who may run itadmin, or owner of the machine's teamsystem admin only
Downtimenone — a grace window (default 24h) keeps the previous secret validnone if you pass --no-revoke-old for an overlap
What you redeploy withthe new TEMPER_M2M_CLIENT_SECRETa new client_id and secret
The grace window is what makes this a non-event for a running fleet: mint the new secret, redeploy the
app with it in the environment, and the old secret expires under you with nothing dropped. At most two
secrets are ever live at once.
Rotating an Auth0 secret needs no Temper action at all — the client_id is unchanged, so
authorship history is continuous and Temper never saw the secret. Only rotating the Auth0
application (a genuinely new client_id) needs rebind, which transplants the existing agent
profile's identity — and its full accumulated reach — onto the new id. That inherited reach can exceed
a team owner's own authority, which is why rebind alone keeps the system-admin bar.

Fork safety#

The connection holds sockets. Clear the memo in every forked worker:
Strictly speaking the sockets are already safe: connection_pool (>= 2.4, which
net-http-persistent pools through) drops pooled connections from a Process._fork hook, and the
gem's suite measures it — a forked child that skips the reset still causes a fresh TCP accept on a
keep-alive server. The hooks above clear this gem's memoized client rather than relying on a
transitive dependency's default. Keep them.

Addressing, and what the SDK will not do#

Resources are addressed by ref: a bare UUID, or the decorated sluggify(title)-<uuid> form.
Resolution is trailing-UUID-only, so a stale slug half is harmless and there is no by-slug lookup.
Temper.parse_ref is available directly and never touches the network. Unparseable input raises
before a request is made — no fuzzy matching, never a guess.
Bulk cogmap reconcile is deliberately absent. PUT /api/cognitive-maps/{id} takes a pre-embedded
desired-state manifest whose chunks_packed is a required, client-computed 768-dimension BGE
embedding carried verbatim, with no server-side fallback. Ruby has no embedder, so that path is
physically out of reach — it is a CLI operator's job, not a Rails request's. Incremental authoring
(cognitive_maps.author, assert_relationship, set_facet) is fully supported, and on every one of
those paths the server chunks and embeds for you.

See also#

Machine credentials — the operator's side: who may mint a credential, how reach is contained to the minter's own authority, revocation.
Working with Teams — the roles and ownership that a machine's reach is expressed in.
Building a cognitive map — what you are authoring into, and why bulk reconcile is a CLI act.
Self-hosting — standing up the instance whose /oauth/token a temper-issued credential mints against.
Modified at 2026-11-15 01:09:09
Previous
Rate-limit an instance at the edge
Next
Request to join the gating team
Built with