46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
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
|
|
}
|