Bulk issue credentials
M3-03 · dedicated bulk-issuance upload · async, queued & resumable (Redis-backed worker)
Issuing as Acme Staffing Solutions ·
did:velocity:0x8f3a…c21b · Credential type: EmploymentPastV1.11 · Upload issuance CSV
dedicated to bulk issuance — separate from the Employees CSV importThis upload is only for issuing credentials — it does not create or edit Employee records. Rows are matched to existing employees by Employee ID; unmatched rows are flagged for review, not silently created. To manage employee data itself, use Employees › Upload CSV instead.
issuance_batch_march.csv uploaded · 247 rows parsed
Drop a new file to replace it, or download the issuance CSV template (email, employeeId, jobTitle, department, startDate, endDate)
| Employee | Job Title | Employment period | Validation | |
|---|---|---|---|---|
| John Smith | Software Developer | Jan 2022 – Mar 2024 | Ready | |
| Jane Doe | Project Manager | Jun 2021 – Feb 2024 | Ready | |
| Alex Turner | Recruiter | Feb 2020 – Nov 2023 | Missing email | |
| Priya Rao | QA Analyst | Mar 2023 – Jul 2024 | Ready | |
| — | — | — | Missing job title |
Showing 1–5 of 247 · 244 ready · 3 need fixing
Confirm dialog shown below — appears after clicking "Issue 244 credentials", before anything is sent.
Progress view shown below — appears once the batch is queued. Backed by a Redis/BullMQ worker: each row is processed independently, status is durable per row, and the page polls for live updates.
Batch #A3F2 · Issuing…
Started 2 minutes ago · auto-refreshes every 3sIssued
180
of 244 total
Pending
58
queued
Failed
6
retry available
Total
244
in this batch
| Employee | Status | Detail | Actions |
|---|---|---|---|
| John Smith | Issued | Claim link sent 09:41 | |
| Jane Doe | Issued | Claim link sent 09:41 | |
| Marcus Lee | Failed | CIH timeout after 3 attempts | |
| Priya Rao | Pending | Queued, position 12 |
Queued/resumable by design — closing this tab or a server restart doesn't lose progress: the batch and per-row state live in Postgres, work items live in the Redis queue, and the worker resumes exactly where it left off.