Skip to content
Registry StackDocsDevelopment (unreleased)

List review policies

GET
/v1/review-policies
curl --request GET \
--url https://example.com/v1/review-policies \
--header 'Authorization: Bearer <token>' \
--header 'registry-casework-profile: example'
traceparent
string
registry-casework-profile
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9._:-]+$/

The caller’s exact governed access profile for this protocol.

Success

Media typeapplication/json
Array<object>
object
clocks
Array<string>
context
required
One of:
object
mode
required
string
Allowed value: submitted
dependencies
required

Complete behavioral inputs retained beside an admitted request. Live Directory membership and absence facts remain current authority, not policy inputs.

object
accessProfiles
required
Array<object>
object
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
principalClaim
required
string
requiredScopes
required
Array<string>
>= 1 items unique items
role
required
string
Allowed values: staff supervisor administrator requester
calendars
required
Array<object>
object
holidaySet
required
string
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
timezone
required
string
workingWeekdays
required
Array<string>
unique items
Allowed values: monday tuesday wednesday thursday friday saturday sunday
clocks
required
Array
One of:
object
after
required
One of:
object
minutes
required
integer format: uint32
>= 1 <= 5256000
anchor
required

The instant a subject clock counts from: anchor: {type: request-accepted}.

object
type
required
string
Allowed values: request-accepted
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
type
required
string
Allowed value: subject
contextProvider
required
Any of:
object
capabilities
required
Array<string>
unique items
Allowed values: human-display service-status task-grant-context routing-context
deploymentRef
required
string
description
string | null
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
serviceProfiles
required
object
human-display
string
routing-context
string
service-status
string
task-grant-context
string
sourceNamespace
required
string
inbox
required
object
defaultPageSize
required
integer format: uint32
default: 25 >= 1 <= 100
maximumCandidateScan
required
integer format: uint32
default: 100 >= 1 <= 10000
maximumConcurrentSourceReads
required
integer format: uint32
default: 4 >= 1 <= 32
maximumSourceReads
required
integer format: uint32
default: 25 >= 1 <= 10000
pageDeadlineMilliseconds
required
integer format: uint64
default: 2000 >= 100 <= 30000
queues
required
Array<object>
object
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
label
required

Human-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.

string
/[

‪-‮⁦-⁩﷐-﷯￾￿]|🿾|🿿|𯿾|𯿿|𿿾|𿿿|񏿾|񏿿|񟿾|񟿿|񯿾|񯿿|񿿾|񿿿|򏿾|򏿿|򟿾|򟿿|򯿾|򯿿|򿿾|򿿿|󏿾|󏿿|󟿾|󟿿|󯿾|󯿿|󿿾|󿿿|􏿾|􏿿/
taskTemplates
required
Array<object>
object
agent
required

The agent a template names, as casework.yaml writes it: the issuer is the URL of the token issuer that authenticates the agent (CFG-VAL-7).

object
issuer
required

An absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.

string format: uri
<= 2048 characters /^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$/
subject
required
string
authorizationMode

Immediate authorizations last at most fifteen minutes. Deferred is an explicit governed window of at most seven days; assertion TTL stays sixty seconds.

string
Allowed values: immediate deferred
bounds
required
One of:
object
requirement
required
string
type
required
string
Allowed value: evidence
client
required
string
eligibleProfiles
required
Array<string>
eligibleTeams
required
Array<string>
evidenceContext
Any of:
object
audience
required
string
requesterTags
required
Array<string>
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
label
required

Human-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.

string
/[

‪-‮⁦-⁩﷐-﷯￾￿]|🿾|🿿|𯿾|𯿿|𿿾|𿿿|񏿾|񏿿|񟿾|񟿿|񯿾|񯿿|񿿾|񿿿|򏿾|򏿿|򟿾|򟿿|򯿾|򯿿|򿿾|򿿿|󏿾|󏿿|󟿾|󟿿|󯿾|󯿿|󿿾|󿿿|􏿾|􏿿/
lifetimeSeconds
required
integer format: uint64
>= 1 <= 604800
purpose
required
string
resource
required
string
reviewPolicies

Policies whose currently held ReviewTasks may issue this grant.

Array<string>
scopes
required
Array<string>
source
required
string
subjects
required

Exact token identity keys mapped to governed source logical fields. Values are extracted from the approving caller’s disclosed source read.

object
version
required
string
teams
required
Array<object>
object
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
label
required

Human-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.

string
/[

‪-‮⁦-⁩﷐-﷯￾￿]|🿾|🿿|𯿾|𯿿|𿿾|𿿿|񏿾|񏿿|񟿾|񟿿|񯿾|񯿿|񿿾|񿿿|򏿾|򏿿|򟿾|򟿿|򯿾|򯿿|򿿾|򿿿|󏿾|󏿿|󟿾|󟿿|󯿾|󯿿|󿿾|󿿿|􏿾|􏿿/
memberProfiles
required
Array<string>
serves
required
Array<string>
supervisorProfiles
required
Array<string>
trustedProducers
required
Array<object>
object
completion
Any of:
object
destinationId
required
string
recipientBinding
required
string
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
initiatorProfile

The requester profile a person named as this producer’s initiator authenticates with to read the requester-visible history of their own requests. Absent, no initiator reads anything.

string | null
issuer
required

An absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.

string format: uri
<= 2048 characters /^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$/
profile
required
string
retention
required

How long Casework keeps what a producer needs to recover a submission.

object
receiptRetentionDays
required

Days a submission receipt stays readable for recovery, at most 365.

integer format: uint32
>= 1 <= 365
reviewPolicies
required
Array<string>
sourceNamespaces
required
Array<string>
subject
required
string
trustedInitiatorIssuer

An absolute http or https URL with a host preserved as written, no user information, and no backslash, whitespace or control character. DNS case and equivalent IPv6 literals are permitted.

string format: uri
<= 2048 characters /^[Hh][Tt][Tt][Pp][Ss]?://[^/?#@\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]+([/?#][^\u005C\u0000-\u0020\u007F-\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]*)?$/
displaySchema
required
identity
required
object
digest
required

A SHA-256 digest: sha256: followed by 64 lowercase hex digits.

string
/^sha256:[0-9a-f]{64}$/
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
version
required
string
outcomes
Array<object>
object
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
label
required

Human-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.

string
/[

‪-‮⁦-⁩﷐-﷯￾￿]|🿾|🿿|𯿾|𯿿|𿿾|𿿿|񏿾|񏿿|񟿾|񟿿|񯿾|񯿿|񿿾|񿿿|򏿾|򏿿|򟿾|򟿿|򯿾|򯿿|򿿾|򿿿|󏿾|󏿿|󟿾|󟿿|󯿾|󯿿|󿿾|󿿿|􏿾|􏿿/
publicReason
required

Whether a decision with this outcome gives text for release to the subject’s owner. There is no default: the policy author decides what an applicant is told.

string
Allowed values: required optional none
reasonRequired
required
boolean
resultRequired
boolean
settlement
required
string
Allowed values: approved rejected changes-requested answered
purpose
required
string
Allowed values: approval answer
resultSchema
retention
required
object
accountabilityRetentionDays
required
integer format: uint32
>= 1 <= 3650
terminalRetentionDays
required
integer format: uint32
>= 1 <= 3650
routing
Array<object>
object
because
required

Human-readable display text. Bidirectional embedding, override, and isolate controls, byte-order marks, line and paragraph separators, and Unicode noncharacters are refused; multilingual joiners and direction marks remain valid.

string
/[

‪-‮⁦-⁩﷐-﷯￾￿]|🿾|🿿|𯿾|𯿿|𿿾|𿿿|񏿾|񏿿|񟿾|񟿿|񯿾|񯿿|񿿾|񿿿|򏿾|򏿿|򟿾|򟿿|򯿾|򯿿|򿿾|򿿿|󏿾|󏿿|󟿾|󟿿|󯿾|󯿿|󿿾|󿿿|􏿾|􏿿/
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
queue
required
string
when
required
object
fields
object
stage
string | null
stages
required
Array<object>
object
decidingProfiles
required
Array<string>
excludeInitiator
required
boolean
excludePreviousStageReviewers
required
boolean
id
required

A local identifier: a lowercase letter, then up to 63 lowercase letters, digits, _, or -.

string
/^[a-z][a-z0-9_-]{0,63}$/
negativeDecisions
One of:

A rejection or change request settles the whole review immediately.

string
Allowed value: settle
queue
required
string
requiredApprovals
required
integer format: uint32
>= 1 <= 32

Example

[
{
"context": {
"mode": "submitted"
},
"dependencies": {
"accessProfiles": [
{
"role": "staff"
}
],
"calendars": [
{
"workingWeekdays": [
"monday"
]
}
],
"clocks": [
{
"anchor": {
"type": "request-accepted"
},
"type": "subject"
}
],
"contextProvider": {
"capabilities": [
"human-display"
],
"serviceProfiles": {}
},
"inbox": {
"defaultPageSize": 25,
"maximumCandidateScan": 100,
"maximumConcurrentSourceReads": 4,
"maximumSourceReads": 25,
"pageDeadlineMilliseconds": 2000
},
"taskTemplates": [
{
"authorizationMode": "immediate",
"bounds": {
"type": "evidence"
}
}
]
},
"outcomes": [
{
"publicReason": "required",
"settlement": "approved"
}
],
"purpose": "approval",
"stages": [
{
"excludeInitiator": false,
"excludePreviousStageReviewers": false,
"negativeDecisions": "settle"
}
]
}
]
traceparent
string

W3C trace context.

Problem: cursor.invalid, request.invalid, request.limit-out-of-range, source-profile.not-applicable, source-profile.required

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: cursor.invalid
detail
required
Allowed value: The cursor is invalid for this request.
status
required
Allowed value: 400
title
required
Allowed value: Cursor invalid
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/cursor/invalid

Example

{
"code": "cursor.invalid",
"detail": "The cursor is invalid for this request.",
"status": 400,
"title": "Cursor invalid",
"type": "https://id.registrystack.org/problems/registry-casework/cursor/invalid"
}
traceparent
string

W3C trace context.

Problem: authentication.refused

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: authentication.refused
detail
required
Allowed value: The bearer credential is missing, invalid, or expired. Sign in again.
status
required
Allowed value: 401
title
required
Allowed value: Authentication refused
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/authentication/refused

Example

{
"code": "authentication.refused",
"detail": "The bearer credential is missing, invalid, or expired. Sign in again.",
"status": 401,
"title": "Authentication refused",
"type": "https://id.registrystack.org/problems/registry-casework/authentication/refused"
}
WWW-Authenticate
Allowed value: Bearer
traceparent
string

W3C trace context.

Problem: operation.not-authorized, profile.not-authorized, profile.not-human

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: operation.not-authorized
detail
required
Allowed value: Your current Casework authority does not allow this operation.
status
required
Allowed value: 403
title
required
Allowed value: Operation not authorized
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/operation/not-authorized

Example

{
"code": "operation.not-authorized",
"detail": "Your current Casework authority does not allow this operation.",
"status": 403,
"title": "Operation not authorized",
"type": "https://id.registrystack.org/problems/registry-casework/operation/not-authorized"
}
traceparent
string

W3C trace context.

Problem: request.not-found

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: request.not-found
detail
required
Allowed value: The requested Casework route does not exist.
status
required
Allowed value: 404
title
required
Allowed value: Route not found
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/not-found

Example

{
"code": "request.not-found",
"detail": "The requested Casework route does not exist.",
"status": 404,
"title": "Route not found",
"type": "https://id.registrystack.org/problems/registry-casework/request/not-found"
}
traceparent
string

W3C trace context.

Problem: cursor.expired, review.result-expired

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: cursor.expired
detail
required
Allowed value: This cursor has expired. Start again without a cursor and deduplicate entries by eventId.
status
required
Allowed value: 410
title
required
Allowed value: Cursor expired
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/cursor/expired

Example

{
"code": "cursor.expired",
"detail": "This cursor has expired. Start again without a cursor and deduplicate entries by eventId.",
"status": 410,
"title": "Cursor expired",
"type": "https://id.registrystack.org/problems/registry-casework/cursor/expired"
}
traceparent
string

W3C trace context.

Problem: request.body-too-large

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: request.body-too-large
detail
required
Allowed value: The request body exceeds the one MiB limit.
status
required
Allowed value: 413
title
required
Allowed value: Request body too large
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/body-too-large

Example

{
"code": "request.body-too-large",
"detail": "The request body exceeds the one MiB limit.",
"status": 413,
"title": "Request body too large",
"type": "https://id.registrystack.org/problems/registry-casework/request/body-too-large"
}
traceparent
string

W3C trace context.

Problem: request.unsupported-media-type

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: request.unsupported-media-type
detail
required
Allowed value: Send a JSON request body with Content-Type application/json.
status
required
Allowed value: 415
title
required
Allowed value: Unsupported media type
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/unsupported-media-type

Example

{
"code": "request.unsupported-media-type",
"detail": "Send a JSON request body with Content-Type application/json.",
"status": 415,
"title": "Unsupported media type",
"type": "https://id.registrystack.org/problems/registry-casework/request/unsupported-media-type"
}
traceparent
string

W3C trace context.

Problem: request.unprocessable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: request.unprocessable
detail
required
Allowed value: The request body does not match the Casework contract.
status
required
Allowed value: 422
title
required
Allowed value: Request could not be processed
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/request/unprocessable

Example

{
"code": "request.unprocessable",
"detail": "The request body does not match the Casework contract.",
"status": 422,
"title": "Request could not be processed",
"type": "https://id.registrystack.org/problems/registry-casework/request/unprocessable"
}
traceparent
string

W3C trace context.

Problem: runtime.failure

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: runtime.failure
detail
required
Allowed value: Casework could not complete the request.
status
required
Allowed value: 500
title
required
Allowed value: Casework runtime failure
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/runtime/failure

Example

{
"code": "runtime.failure",
"detail": "Casework could not complete the request.",
"status": 500,
"title": "Casework runtime failure",
"type": "https://id.registrystack.org/problems/registry-casework/runtime/failure"
}
traceparent
string

W3C trace context.

Problem: source.bad-gateway, source.version-mismatch, source.version-unavailable

Media typeapplication/problem+json
One of:
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: source.bad-gateway
detail
required
Allowed value: The source returned a response that does not match its registered contract.
status
required
Allowed value: 502
title
required
Allowed value: Invalid source response
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/source/bad-gateway

Example

{
"code": "source.bad-gateway",
"detail": "The source returned a response that does not match its registered contract.",
"status": 502,
"title": "Invalid source response",
"type": "https://id.registrystack.org/problems/registry-casework/source/bad-gateway"
}
traceparent
string

W3C trace context.

Problem: service.unavailable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
code
required
Allowed value: service.unavailable
detail
required
Allowed value: Casework storage is unavailable. Try again after the service recovers.
status
required
Allowed value: 503
title
required
Allowed value: Casework service unavailable
type
required
Allowed value: https://id.registrystack.org/problems/registry-casework/service/unavailable

Example

{
"code": "service.unavailable",
"detail": "Casework storage is unavailable. Try again after the service recovers.",
"status": 503,
"title": "Casework service unavailable",
"type": "https://id.registrystack.org/problems/registry-casework/service/unavailable"
}
Retry-After
integer
traceparent
string

W3C trace context.