Overview
Credentials are qualifications granted to improvers that determine which workflow steps they can claim and complete. The credential system ensures that only qualified individuals perform specialized tasks.How Credentials Work
Workflow Role Requirements
A proposer creates a workflow with roles that require specific credentials
Access Control
Only improvers holding all required credentials can claim steps assigned to that role
Credential Types
Credentials are identified by string values. Current credential types:dpw_certified
Department of Public Works CertificationIndicates the improver has been certified by the Department of Public Works for specialized tasks like infrastructure maintenance or public works projects.
sfluv_verifier
SFLUV Platform VerifierIndicates the improver has been verified by SFLUV administrators and can perform platform-specific verification and validation tasks.
Additional credential types can be created by admins as the platform grows and new specializations emerge.
Credential Type Definition
Granting Credentials
Issuers can grant credentials to approved improvers:Grant Requirements
- Target user must be an approved improver
- Credential type must exist in the system
- Issuer must have active issuer role
- User cannot already hold an active credential of that type
Revoking Credentials
Issuers can revoke credentials when they are no longer valid:Revocation Effects
Immediate Access Loss
Immediate Access Loss
The improver immediately loses access to any workflow steps requiring the revoked credential. In-progress steps may be affected depending on platform policy.
Workflow Feed Filtering
Workflow Feed Filtering
Workflows requiring the revoked credential are removed from the improver’s workflow feed (
/improver page). The improver can no longer see or claim steps from these workflows.Series Claims
Series Claims
If an improver has claimed a recurring workflow series, revocation of a required credential releases their claim on future instances. Completed steps remain valid.
Historical Record
Historical Record
Revocation is recorded with a timestamp. The credential entry remains in the database with
revoked_at populated for audit purposes.Workflow Role Requirements
Proposers define roles when creating workflows, specifying required credentials:Example: Workflow with Credential Requirements
- Step 1 can only be claimed by improvers with
dpw_certified - Step 2 can only be claimed by improvers with
sfluv_verifier - An improver with both credentials could claim either step
- An improver with neither credential sees no available steps
Credential Checking Logic
The platform filters workflow visibility based on credentials: From/home/daytona/workspace/source/backend/handlers/app_workflow.go:883-991:
- Load improver’s active credentials
- Build credential set for fast lookup
- Iterate through all available workflows
- Check each step’s role requirements
- Filter out workflows where improver has no claimable steps
The workflow feed at
/improver automatically shows only workflows with steps the improver is qualified to claim.Viewing User Credentials
Issuers can view all credentials for a specific user:Active vs Revoked Credentials
- Active:
revoked_atisnull - Revoked:
revoked_atcontains a Unix timestamp
Credential-Based Access Summary
No Credentials
Improvers without any credentials can only claim workflow steps that have no credential requirements (empty
required_credentials array).Some Credentials
Improvers see workflows with steps matching their credential set. Steps requiring credentials they don’t hold remain hidden.
Multiple Credentials
Improvers with multiple credentials have access to a wider range of workflows and can claim steps from multiple specialized roles.
Admin Override
Admins can view and access all workflows regardless of credential requirements, but still respect role assignments when configured.
Best Practices
Credential Naming
Credential Naming
Use clear, descriptive credential type values:
- ✅
dpw_certified,first_aid_certified,forklift_operator - ❌
cred1,type_a,qualification
Credential Granularity
Credential Granularity
Create credentials at the right level of specificity:
- Too broad:
certified(certified in what?) - Too narrow:
widget_repair_monday_only(overly specific) - Just right:
widget_repair_certified(clear scope)
Documentation
Documentation
Maintain documentation of what each credential represents and the requirements for obtaining it. This ensures consistent application across issuers.
Audit Trail
Audit Trail
Use the issuer interface at
/issuer to regularly review:- Who has which credentials
- When credentials were granted
- When credentials were revoked
- Which workflows require specific credentials
Credential Database Schema
While implementation details are abstracted, understanding the conceptual schema helps:The system tracks both who issued and who revoked credentials for full accountability.
See Also
Roles
Learn about the issuer role and other platform roles
Workflows
How workflows define role requirements
Voting
Workflow approval process