Files
gerador-proposta/src/application/access/workspace-authorizer.ts
T
2026-10-03 00:00:45 -03:00

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>;
}