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@f

Limits 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

ChoiceQuestion key access_request_status

Does 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

Illustrative
Send to resource owner

Choice 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

v1Current Versionabout 8 hours ago@f

Initial version

Comments (0)