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
2 changes: 1 addition & 1 deletion .zap/rules.tsv
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
10003 FAIL (Vulnerable JS Library: a known-vulnerable script served by the site, such as Swagger UI's)
10063 FAIL (Permissions Policy Header Not Set: Caddy sets it on every response)
10038 WARN (Content Security Policy Header Not Set: only Swagger UI, left out of the policy on purpose, ADR 0015)
10038 WARN (Content Security Policy Header Not Set: only Swagger UI, left out of the policy on purpose because it builds its page with inline code)
10096 IGNORE (Timestamp Disclosure: numbers inside Swagger UI's bundled scripts, not timestamps)
10109 IGNORE (Modern Web Application: informational)
10111 IGNORE (Authentication Request Identified: informational, the sign-in form)
Expand Down
5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,6 @@ flowchart BT
- **Observability:** JSON logs with the collection run ID, Micrometer metrics with
Prometheus, a Grafana dashboard kept as code, and alert rules with unit tests,
delivered to Discord.
- **Decisions written down:** [20 architecture decision records](docs/decisions), from
the Java version to the trusted certificate authorities.

## Tech stack

Expand All @@ -126,8 +124,6 @@ flowchart BT
| CI/CD | GitHub Actions: build and tests, coverage gate, Arm image, secret scan (gitleaks), image scan (Trivy) with an SBOM and provenance attestation, deploy over SSH with health check and rollback |
| Code quality | Spring Java Format (checked in the build), CodeQL, SonarQube Cloud, Dependabot, a weekly OWASP ZAP baseline scan of the live site |

Why each choice was made: [docs/decisions](docs/decisions).

## Getting started

**You need:** Java 25 and a running Docker. Maven is not needed: `./mvnw` downloads it.
Expand Down Expand Up @@ -240,7 +236,6 @@ compose.yaml local PostgreSQL, and Mailpit for alert emails
.github/workflows/live-stores.yml weekly test against the real stores
infra/oracle/ Terraform for the server (Oracle Cloud Always Free)
deploy/ what runs on the server, and how to operate it
docs/decisions/ architecture decision records
```

Each package has a `package-info.java` saying what belongs there.
Expand Down
5 changes: 2 additions & 3 deletions deploy/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Production

What runs on the server, in `/opt/extpulse`, and how to operate it. Why it is built
this way: [ADR 0014](../docs/decisions/0014-deploy-and-operations.md).
What runs on the server, in `/opt/extpulse`, and how to operate it.

| File | What it does |
| --- | --- |
Expand Down Expand Up @@ -154,7 +153,7 @@ To look inside a dump without touching production, restore it into another datab
### Copies off the server

Every dump also goes to the bucket `extpulse-backups` in Object Storage, kept 30 days
([ADR 0017](../docs/decisions/0017-offsite-backups.md)). The server can add and read them,
(`infra/oracle/backups.tf`). The server can add and read them,
not replace or delete them. A copy now, and the list in the bucket:

```sh
Expand Down
33 changes: 0 additions & 33 deletions docs/decisions/0001-java-25-and-spring-boot-4.md

This file was deleted.

37 changes: 0 additions & 37 deletions docs/decisions/0002-modular-monolith.md

This file was deleted.

30 changes: 0 additions & 30 deletions docs/decisions/0003-postgresql-and-flyway.md

This file was deleted.

31 changes: 0 additions & 31 deletions docs/decisions/0004-docker-compose-and-testcontainers.md

This file was deleted.

43 changes: 0 additions & 43 deletions docs/decisions/0005-store-adapters.md

This file was deleted.

48 changes: 0 additions & 48 deletions docs/decisions/0006-daily-collection.md

This file was deleted.

42 changes: 0 additions & 42 deletions docs/decisions/0007-accounts-and-jwt.md

This file was deleted.

49 changes: 0 additions & 49 deletions docs/decisions/0008-catalog-and-stats.md

This file was deleted.

Loading
Loading