Skip to content

Security

Security keeps every Permission earned, every secret fresh, and every access recorded.

Outcome

PartThis Process
OutcomeEvery Role holds only the Permissions it used in the last 30 days, and no secret is older than 90 days.
ReadsRole, Permission
LeavesPermission, Decision
Runs inEach Startup

Accountable

Engineering Lead, Engineering Team.

Workflows

WorkflowRunsTeam
Access reviewevery dayEngineering Team

Who does each step

Security: who does each step5 steps in 1 Workflow, across 1 Role: Security Engineer. The table below lists every step.Security EngineerSvenWorkflowAccess review1 · Permission.listList each Role’s Permissions.2 · Action.listCompare them with the Verbs the Rolecalled in the last 30 days.3 · Permission.deleteRemove Permissions unused for 30 days.4 · Secret.rotateRotate secrets older than 90 days.5 · Message.createReport every widened Permission to theFounder.Security: who does each step5 steps in 1 Workflow, across 1 Role: Security Engineer. The table below lists every step.WorkflowAccess reviewSecurity Engineer1 · Permission.listList each Role’s Permissions.Security Engineer2 · Action.listCompare them with the Verbs the Role called inthe last 30 days.Security Engineer3 · Permission.deleteRemove Permissions unused for 30 days.Security Engineer4 · Secret.rotateRotate secrets older than 90 days.Security Engineer5 · Message.createReport every widened Permission to the Founder.
Each box is a step, numbered within its Workflow, with the Verb it calls, under the Role it runs as. The table below adds approvals.
WorkflowStepRoleCallsApproval
Access review1. List each Role’s Permissions.Security EngineerPermission.listNone
Access review2. Compare them with the Verbs the Role called in the last 30 days.Security EngineerAction.listNone
Access review3. Remove Permissions unused for 30 days.Security EngineerPermission.deleteNone
Access review4. Rotate secrets older than 90 days.Security EngineerSecret.rotateNone
Access review5. Report every widened Permission to the Founder.Security EngineerMessage.createNone

Events

DirectionWhenWhat happens
InEvery dayStarts Access review
OutPermission.deletedRaised by step 3 of Access review
OutSecret.rotatedRaised by step 4 of Access review
OutMessage.createdRaised by step 5 of Access review

Plays

No Play names this Process.

Controls

Settings

SettingTypeDefaultSaySet with
access.unusedDaysinteger30Remove permissions unused for 30 daysSetting.update
secrets.maxAgeDaysinteger90Rotate secrets every 90 daysSetting.update

Failure

A failed step retries; when retries run out, the Action goes to the Engineering Lead.

Loop

No loop: the path is never randomized, because it serves Authenticated Actions.

Code

Text
Turn on security

Enable

On by default for every Product Template. Process.pause stops new Actions; Actions in progress finish.

Text
Remove permissions unused for 30 days

Example

On the 1st, Access review finds a candidate-matching SaaS's Prospector Role has not deleted a Contact in 30 days. The Permission is removed, and the Founder reads the report.