Access request completeness
Check that an access request names the resource, the role, a business reason and a duration before it reaches the approver.
F@fLimits to keep in mind
This checks the request's completeness only. It never grants access.
Problem
Approvers bounce access requests back for missing details, and requests that get approved anyway end up broader or longer than needed.
Goal
Give the resource owner a complete request to approve, and ask the requester for exactly what's missing.
Input / state
The access request text.
- request
- What the employee asked for.
Decision question
access_request_statusDoes this access request include the resource and role, a business reason, and how long access is needed?
Options
completeNames the resource and level of access, a business reason, and a duration or says it's ongoing.missing_resource_or_roleUnclear what exactly to grant access to, or at what level.missing_business_reasonNo reason given for needing access.missing_durationNo indication of how long access is needed.
Allowed outcomes
Decided in your code from the answer and its confidence. Thresholds are yours to set and test.
- Send to resource ownerChoice is complete and confidence meets your threshold.
- Ask for resource and roleChoice is missing_resource_or_role and confidence meets your threshold.
- Ask for reasonChoice is missing_business_reason and confidence meets your threshold.
- Ask for durationChoice is missing_duration and confidence meets your threshold.
- Service desk agentConfidence is below your threshold: probability is spread across options.
Example scenarios
Predefined demonstrations. No model is called; the outcome shown is an illustrative judgment.
Example state
{
"request": "Read-only access to the payments-api repo for the Q2 audit, until June 30."
}Outcome
IllustrativeChoice is complete and confidence meets your threshold.
Why
Resource, role, reason and duration are all present.
Using it well
- Complete doesn't mean approved. The resource owner always decides, and permissions are granted in code by your identity system.
- When several details are missing, ask for all of them in one message.
Request definition
POST https://api.typesafe.ai/v1/systemone{
"model": "jev-latest",
"state": {
"request": "<request>"
},
"questions": {
"access_request_status": {
"type": "choice",
"instructions": "Does this access request include the resource and role, a business reason, and how long access is needed?",
"criteria": {
"complete": "Names the resource and level of access, a business reason, and a duration or says it's ongoing.",
"missing_resource_or_role": "Unclear what exactly to grant access to, or at what level.",
"missing_business_reason": "No reason given for needing access.",
"missing_duration": "No indication of how long access is needed."
}
}
}
}Request shape from the System One API reference; a Kev server accepts the same body. Replace the placeholder state with your data. Requests need your own API key or server.
Version History
Initial version