24 lines
726 B
TypeScript
24 lines
726 B
TypeScript
/**
|
|
* Autorização de workspace neste repositório. A implementação chega no prompt 03.
|
|
* Não há adapter que aprove por omissão: sem implementação, a ação não é autorizada.
|
|
* `workspaceId` é resolvido no servidor. O cliente não é fonte de autoridade.
|
|
*/
|
|
export type WorkspaceRole = "owner" | "admin" | "gestor" | "agent";
|
|
|
|
export type WorkspaceAction =
|
|
| "models.read"
|
|
| "models.write"
|
|
| "proposals.read"
|
|
| "proposals.write"
|
|
| "proposals.generate";
|
|
|
|
export type AccessDecision = "allowed" | "denied";
|
|
|
|
export interface WorkspaceAuthorizer {
|
|
authorize(input: {
|
|
readonly actorId: string;
|
|
readonly workspaceId: string;
|
|
readonly action: WorkspaceAction;
|
|
}): Promise<AccessDecision>;
|
|
}
|