Data Pipeline Case Studies
Permission Matrix Case
A typed permission matrix can map each role to the actions it can perform.
Permission Matrix Case
permissions.ts
type Role = "viewer" | "editor" | "admin";
type Action = "read" | "write" | "delete";
const permissions: Record<Role, Action[]> = {
viewer: ["read"],
editor: ["read", "write"],
admin: ["read", "write", "delete"]
};
function allowedActions(role: Role): string {
return permissions[role].join(",");
}
const selectedRole: Role = ;
const actions: string = allowedActions(selectedRole);
const canDelete: boolean = permissions[selectedRole].includes("delete");
console.log(`role=${selectedRole};actions=${actions};delete=${canDelete}`);
type Role = "viewer" | "editor" | "admin";
type Action = "read" | "write" | "delete";
const permissions: Record<Role, Action[]> = {
viewer: ["read"],
editor: ["read", "write"],
admin: ["read", "write", "delete"]
};
function allowedActions(role: Role): string {
return permissions[role].join(",");
}
const selectedRole: Role = ;
const actions: string = allowedActions(selectedRole);
const canDelete: boolean = permissions[selectedRole].includes("delete");
console.log(`role=${selectedRole};actions=${actions};delete=${canDelete}`);
permission matrix
Record types keep lookup keys and stored actions aligned with the domain model.