Authentication & Access
Smart EPD supports multiple authentication methods and a layered permission model that controls access at every level of the platform hierarchy.
Authentication methods
| Method | Use case | How it works |
|---|---|---|
| Email code | Interactive login (UI and API) | Request a 6-digit code sent to your email, then exchange it for a JWT |
| JWT Bearer token | API requests | Include Authorization: Bearer <token> on every request. Tokens expire after 100 hours. |
| API Key | Automated integrations | Create a long-lived key (sk_...) via the API. Scoped to read_only or read_write. |
| Session cookie | Admin panel | Standard cookie-based auth |
| None | Public EPD library | GET /api/v2/public/epds/ and the public EPD view are anonymous: send no credentials. See Public EPD library. |
Login flow
API Keys
For automated integrations (tool providers, CI/CD pipelines, data sync), API keys provide stable, long-lived authentication:
- Created via the API (requires JWT auth)
- Prefixed with
sk_for easy identification - Scoped to either read-only or read-write
- The raw key is shown once on creation; store it securely
Use API keys in the same Authorization: Bearer sk_... header format as JWTs.
Public EPD library
Published EPDs are public content, so the endpoints that serve them need no authentication:
GET /api/v2/public/epds/lists every publicly listed EPD across both Smart EPD platforms.GET /api/v2/public/epds/{id}/view/returns one EPD's full digital declaration.
They only ever return published, unexpired EPDs. An unpublished or expired EPD returns 404, exactly like an id that doesn't exist, so nothing about a draft can be learned from them. Sending credentials is harmless but changes nothing. See the Public EPD Library guide.
Permission model
Smart EPD uses a layered permission model where access is determined by your organization type, workspace role, and project membership.
Organization level
Every user belongs to exactly one organization. Organization-level roles:
| Role | Permissions |
|---|---|
| Admin | Full control: manage members, settings, billing |
| Member | Standard access: participate in workspaces and projects |
Workspace level
When an organization joins a workspace, all its members receive baseline access. Individual users can be elevated:
| Role | Permissions |
|---|---|
| Admin | Manage workspace members, invites, and member roles |
| Editor | Create and modify projects, EPDs, and submittals |
| Viewer | Read-only access to all workspace content |
Creating, editing, archiving, or deleting workspaces and Categories (PCCs) is a platform-administration action, separate from the workspace roles above. In production these operations are performed by SmartEPD platform admins — contact support to request a change. Outside production, admins of the workspace's owning organization can also perform them. Project creation is not affected: workspace editors and admins can always create projects.
Organization role in workspace
Each organization has a role within the workspace that determines what actions are available:
| Org Role | Typical actions |
|---|---|
| Reporting Organization | Owns projects, creates EPDs, submits for verification |
| Tool Provider | Registers tools in Categories, defines specifications, responds to verification |
| Consultant | Performs LCA work and EPD creation on behalf of manufacturers |
| Verifier | Reviews and certifies specifications, templates, and EPDs |
Project level
Individual users are added to project teams with specific permissions:
| Permission | Effect |
|---|---|
| Can edit EPDs | User can create and modify EPD content |
| Team member | User can view project content and participate in chat |
Access inheritance
Permissions cascade downward through the hierarchy:
Organization membership
└── Workspace membership (viewer by default for all org members)
└── Category access (inherited from workspace)
└── Project team membership (explicit assignment)
A user must have organization membership and workspace access and project team membership to edit EPD data. This ensures that access is always scoped and traceable.
Related pages
- Platform Overview -The entity hierarchy that permissions follow
- Onboarding & Setup -How organizations and workspaces are created
- Data Model -Technical entity reference including membership models