Security
Security keeps every Permission earned, every secret fresh, and every access recorded.
Outcome
| Part | This Process |
|---|---|
| Outcome | Every Role holds only the Permissions it used in the last 30 days, and no secret is older than 90 days. |
| Reads | Role, Permission |
| Leaves | Permission, Decision |
| Runs in | Each Startup |
Accountable
Engineering Lead, Engineering Team.
Workflows
| Workflow | Runs | Team |
|---|---|---|
| Access review | every day | Engineering Team |
Who does each step
| Workflow | Step | Role | Calls | Approval |
|---|---|---|---|---|
| Access review | 1. List each Role’s Permissions. | Security Engineer | Permission.list | None |
| Access review | 2. Compare them with the Verbs the Role called in the last 30 days. | Security Engineer | Action.list | None |
| Access review | 3. Remove Permissions unused for 30 days. | Security Engineer | Permission.delete | None |
| Access review | 4. Rotate secrets older than 90 days. | Security Engineer | Secret.rotate | None |
| Access review | 5. Report every widened Permission to the Founder. | Security Engineer | Message.create | None |
Events
| Direction | When | What happens |
|---|---|---|
| In | Every day | Starts Access review |
| Out | Permission.deleted | Raised by step 3 of Access review |
| Out | Secret.rotated | Raised by step 4 of Access review |
| Out | Message.created | Raised by step 5 of Access review |
Plays
No Play names this Process.
Controls
- Action accountability
- Authenticated Actions
- Task-bound access
- Permission decay
- Permission widening
- Unseated access
- Secret rotation
- Namespace isolation
- Encryption
- Boundary protection
- Vulnerability management
- Append-only records
Settings
| Setting | Type | Default | Say | Set with |
|---|---|---|---|---|
access.unusedDays | integer | 30 | Remove permissions unused for 30 days | Setting.update |
secrets.maxAgeDays | integer | 90 | Rotate secrets every 90 days | Setting.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
Turn on securityEnable
On by default for every Product Template. Process.pause stops new Actions; Actions in progress finish.
Remove permissions unused for 30 daysExample
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.