feat(assets): finish PMS-71 story (types, assets, relationships, CIs, credentials, audit) #30

Closed
David wants to merge 0 commits from feat/assets-story-pms-71 into main
Owner

Closes #PMS-71

Closes #PMS-71
feat(assets): scaffold + asset types, assets, relationships, CIs, credentials, audit
All checks were successful
Create release / Create release from merged PR (pull_request) Has been skipped
ffce981038
Batches PMS-72..78:
- PMS-72 scaffold + router wire
- PMS-73 asset types CRUD (admin writes)
- PMS-74 assets CRUD; create + update record an entry in `asset_audit_log` (`status_changed` when status differs from prior)
- PMS-75 asset relationships (`/assets/:id/relationships`, `/asset-relationships/:id`)
- PMS-76 configuration items - per-asset; `value_encrypted` AES-256-GCM at rest with the host `ENCRYPTION_KEY`
- PMS-77 credential vault - per-asset; username/password/notes all encrypted at rest. Every list call writes a `synced` audit row tagged `{"event":"credential_read"}` for SOC2-style read auditing.
- PMS-78 `GET /api/v1/assets/:id/audit-log` capped at 500 rows; admin-only.

The encryption key plumbing reuses `BillingService::with_encryption_key`'s pattern. `AssetsService::new` defaults to a zero key for unit tests; the router constructs it via `with_encryption_key` in a follow-up commit once the host-config plumbing lands across stacked PRs.

#PMS-72 State Done
#PMS-73 State Done
#PMS-74 State Done
#PMS-75 State Done
#PMS-76 State Done
#PMS-77 State Done
#PMS-78 State Done
vas2000-work closed this pull request 2026-05-21 02:42:57 +02:00
Some checks are pending
Create release / Create release from merged PR (pull_request) Has been skipped
Check / * (pull_request)
Required
E2E / * (pull_request)
Required

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-server!30
No description provided.