Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@
"filename": "openapi/control/control.openapi.yaml",
"hashed_secret": "2c4ea53d93a5d7661383e1c667d72270f9bf2fb6",
"is_verified": false,
"line_number": 15827
"line_number": 15829
}
],
"src/jentic_one/auth/services/crypto.py": [
Expand Down Expand Up @@ -1544,5 +1544,5 @@
}
]
},
"generated_at": "2026-07-01T16:24:17Z"
"generated_at": "2026-07-10T14:14:28Z"
}
2 changes: 2 additions & 0 deletions openapi/control/control.openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,14 @@ components:
anyOf:
- type: string
- type: 'null'
description: Explicit ID of the resource (e.g. a toolkit tk_… or credential cred_… ID). For toolkit:bind, you can omit this and use resource_reference instead.
title: Resource Id
resource_reference:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
description: Look up the resource by API identity instead of by ID. For toolkit:bind, provide {vendor, name, version} to resolve the toolkit that serves the given API. Use this when you don't know the toolkit ID.
title: Resource Reference
resource_type:
enum:
Expand Down
13 changes: 11 additions & 2 deletions src/jentic_one/control/web/schemas/access_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,17 @@ class AccessRequestItemRequest(BaseModel):

resource_type: Literal["credential", "toolkit", "scope"]
action: Literal["bind", "grant"]
resource_id: str | None = None
resource_reference: dict[str, Any] | None = None
resource_id: str | None = Field(
default=None,
description="Explicit ID of the resource (e.g. a toolkit tk_… or credential cred_… ID)."
" For toolkit:bind, you can omit this and use resource_reference instead.",
)
resource_reference: dict[str, Any] | None = Field(
default=None,
description="Look up the resource by API identity instead of by ID."
" For toolkit:bind, provide {vendor, name, version} to resolve the toolkit"
" that serves the given API. Use this when you don't know the toolkit ID.",
)
to_type: str | None = None
to_id: str | None = None
rules: list[PermissionRuleSchema] | None = None
Expand Down
2 changes: 2 additions & 0 deletions ui/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
"type": "null"
}
],
"description": "Explicit ID of the resource (e.g. a toolkit tk_… or credential cred_… ID). For toolkit:bind, you can omit this and use resource_reference instead.",
"title": "Resource Id"
},
"resource_reference": {
Expand All @@ -110,6 +111,7 @@
"type": "null"
}
],
"description": "Look up the resource by API identity instead of by ID. For toolkit:bind, provide {vendor, name, version} to resolve the toolkit that serves the given API. Use this when you don't know the toolkit ID.",
"title": "Resource Reference"
},
"resource_type": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ import type { jentic_one__control__web__schemas__access_requests__PermissionRule
*/
export type AccessRequestItemRequest = {
action: AccessRequestItemRequest.action;
/**
* Explicit ID of the resource (e.g. a toolkit tk_… or credential cred_… ID). For toolkit:bind, you can omit this and use resource_reference instead.
*/
resource_id?: (string | null);
/**
* Look up the resource by API identity instead of by ID. For toolkit:bind, provide {vendor, name, version} to resolve the toolkit that serves the given API. Use this when you don't know the toolkit ID.
*/
resource_reference?: (Record<string, any> | null);
resource_type: AccessRequestItemRequest.resource_type;
rules?: (Array<jentic_one__control__web__schemas__access_requests__PermissionRuleSchema> | null);
Expand Down