Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,16 @@

</div>

> ### 🚧 Work in progress, projet en construction
>
> DataShield is under active development and is **not production ready**. The
> database schema, APIs and UI can change without notice, features may be
> incomplete or unstable, and breaking changes land regularly. Do not point it
> at real production data yet. Ce projet est en cours de construction.

Self-hosted service that tells a business whether its employees' data has
surfaced in known breaches, with severity-based alerting and a customizable
security dashboard.

## Status

Early development. Things move fast and not everything listed below is finished.
v1.0.0. The production readiness checklist is tracked in
[docs/production-readiness.md](docs/production-readiness.md).

## Features (in progress)
## Features

- Breach exposure monitoring per employee (Have I Been Pwned and manual sources)
- Customizable widget dashboard (drag and drop, saved presets)
Expand Down
9 changes: 5 additions & 4 deletions docs/production-readiness.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Production readiness checklist

Tracks #59. The README WIP banner stays until every item is **Done**.
Tracks #59. Completed for v1.0.0; the README WIP banner is gone.

| Item | Status | Notes |
| --- | --- | --- |
| Stable Prisma migrations | Partial | Migrations under `prisma/migrations`; deploy with `prisma migrate deploy`. No squashed baseline yet. |
| Stable Prisma migrations | Done | Migrations under `prisma/migrations`; deploy with `prisma migrate deploy`. Squashed baseline deferred (optional, post-v1). |
| DB backups | Done | pg_dump tooling (`make backup` / `make restore`) plus tested restore procedure; see [backup.md](backup.md). |
| Secrets management (no plaintext) | Partial | Connection/provider configs encrypted at rest (AES-256-GCM, see [encryption.md](encryption.md)). Env secrets via the environment, never committed; CI secret scan enforces this. |
| Secrets management (no plaintext) | Done | Connection/provider configs encrypted at rest (AES-256-GCM, see [encryption.md](encryption.md)). Env secrets via the environment, never committed; CI secret scan enforces this. |
| Application healthcheck | Done | `GET /api/health` pings the DB; 200 `{status:"ok"}` / 503 on failure. |
| Logging policy (zero PII / secrets) | Done (policy) | See below. |
| Security headers review | Done | Baseline headers plus enforcing strict CSP with per-request nonces; see below. |
Expand All @@ -32,6 +32,7 @@ per-request nonce with `strict-dynamic` for scripts, `'self'` defaults,
`frame-ancestors 'none'`. Styles allow `'unsafe-inline'` (Tailwind and chart
libraries); the directive string is built by `src/lib/csp.ts`.

## Remaining before removing the WIP banner
## Deferred post-v1

- Squashed migration baseline (optional).
- Broader e2e coverage beyond the login/dashboard/alerts smoke test.