Security
Built to answer the questionnaire, not to dodge it.
Everything on this page is how the product behaves today, taken from the code and the infrastructure it runs on. Where something is not done yet, we say so.
Signing in
No passwords, so none to steal.
Staff and customers sign in with a one-time link sent to their email. Staff can also use a Microsoft 365 account, from any organisation.
- A link works once. One you ask for expires after fifteen minutes; an invitation from your team lasts seven days, and its page always asks for the six-digit code in the email. Claiming it is a single database statement, so a link clicked twelve times at once still makes one session.
- Asking for a link always gets the same answer, whether or not the address has an account, and requests are rate limited per address and per caller.
- Microsoft 365 sign-in is OpenID Connect with PKCE. The token is checked for this application, a matching nonce and an expiry before anyone is let in, and an installation can be pinned to a single directory.
roost.tellparrot.com/auth/verify?token=…
- Used oncethen it is spent
- Twelve clicks at onceone session
- Or Microsoft 365your work account
Who can do what
One permission matrix, read by every screen and every action.
Roles live in one file, not in scattered checks. Every staff server action asks the matrix for a capability. A test fails if one only asks whether someone is on the team, unless the reason is written beside it.
| Owner | Admin | Data steward | Fundraiser | Member services | Staff | Coordinator | Director | Finance | Viewer | |
|---|---|---|---|---|---|---|---|---|---|---|
| See people | ||||||||||
| Export lists | ||||||||||
| Write notes | ||||||||||
| Build segments | ||||||||||
| Decide member requests | ||||||||||
| Manage feeds | ||||||||||
| Keep the books | ||||||||||
| Read the audit trail | ||||||||||
| Change settings | ||||||||||
| Erase a person |
A slice of the matrix, drawn from the same function the product asks
Export
Reading is not downloading
Erase
One destructive act, for admins
Branches
Access that follows the tree
The record
Nothing changes quietly.
Audit trail
Who did what, and when
The master
No edits in place
Deliveries
Signed, and checked
Keys
Encrypted at rest
Where it runs
One region, a private database, and evidence that lasts.
Every record belongs to one workspace, and staff screens read within their own. The workspace lives in one place.
Region
Microsoft Azure, West US 3
Network
The database is not on the internet
Backups
Geo-redundant, fourteen days back
Logs
Kept for a year
Files
Private, with versions
Secrets
In a key vault, read by identity
Not done yet: there is no web application firewall in front of the app, and the key vault and image registry endpoints are public, gated by Azure identity rather than by network. Both are written down, with the reasons, rather than left for a questionnaire to find.
Next step
Ask us the hard questions.
Or start a workspace and look for yourself. The audit trail is on from day one.