feat(auth): harden Authentik and guest capability boundaries
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
export type WorkbenchAccessMode = 'open' | 'operator' | 'guest'
|
||||
|
||||
export interface WorkbenchAccessCapabilities {
|
||||
analyzePersistedData: boolean
|
||||
selectModels: boolean
|
||||
runQualityChecks: boolean
|
||||
exportResults: boolean
|
||||
acquireSources: boolean
|
||||
manageWorkspace: boolean
|
||||
manageModels: boolean
|
||||
writeDerivedDatasets: boolean
|
||||
reviewEvidence: boolean
|
||||
runChangeDetection: boolean
|
||||
}
|
||||
|
||||
const OPERATOR_CAPABILITIES: WorkbenchAccessCapabilities = {
|
||||
analyzePersistedData: true,
|
||||
selectModels: true,
|
||||
runQualityChecks: true,
|
||||
exportResults: true,
|
||||
acquireSources: true,
|
||||
manageWorkspace: true,
|
||||
manageModels: true,
|
||||
writeDerivedDatasets: true,
|
||||
reviewEvidence: true,
|
||||
runChangeDetection: true,
|
||||
}
|
||||
|
||||
const GUEST_CAPABILITIES: WorkbenchAccessCapabilities = {
|
||||
analyzePersistedData: true,
|
||||
selectModels: true,
|
||||
runQualityChecks: true,
|
||||
exportResults: true,
|
||||
acquireSources: true,
|
||||
manageWorkspace: false,
|
||||
manageModels: false,
|
||||
writeDerivedDatasets: true,
|
||||
reviewEvidence: false,
|
||||
runChangeDetection: true,
|
||||
}
|
||||
|
||||
/** Mirrors the backend's explicit guest route boundary without weakening it. */
|
||||
export function getWorkbenchAccessCapabilities(mode: WorkbenchAccessMode): WorkbenchAccessCapabilities {
|
||||
return mode === 'guest' ? GUEST_CAPABILITIES : OPERATOR_CAPABILITIES
|
||||
}
|
||||
Reference in New Issue
Block a user