Compare commits
base: stwaidele:e606b869d83284535bd0805df968139fe0c885d5
stwaidele:main
stwaidele:345-plugin-zip-license-texts
stwaidele:issue-339-markdown-table-paste
stwaidele:issue-338-tab-navigation
stwaidele:issue-337-merge-split
stwaidele:issue-336-delete-icons
stwaidele:issue-335-gap-cursor
stwaidele:feat/332-invitations
stwaidele:feat/331-admin-create-user
stwaidele:329-quota-override-cell-table-layout
stwaidele:324-325-self-hosting-guide-findings
stwaidele:323-document-title-instance-name
stwaidele:322-admin-settings-form-flat-keys
stwaidele:320-refresh-self-hosting-guide
stwaidele:fix/sort-key-test-timeout
stwaidele:issue-307-pond-branding
stwaidele:issue-305-pond-archive
stwaidele:issue-179-spa-lang
stwaidele:issue-306-instance-branding
stwaidele:issue-304-custom-font-ui
stwaidele:issue-303-fonts-dir-ownership
stwaidele:issue-303-custom-fonts
stwaidele:issue-301-settings-reflow
stwaidele:issue-302-pond-start-page
stwaidele:issue-300-icon-buttons
stwaidele:issue-296-remove-legacy-verify
stwaidele:issue-232-plugin-hash-pinning
stwaidele:adr-0019-0027-accepted
stwaidele:issue-246-vs-nfd-enforced
stwaidele:issue-245-vs-nfd-hidden
stwaidele:issue-244-vs-nfd-marked
stwaidele:issue-243-vs-nfd-mode
stwaidele:issue-221-offline-update
stwaidele:issue-220-isolated-run
stwaidele:issue-288-restore-partitioned
stwaidele:issue-219-offline-build
stwaidele:issue-218-registry-mirror
stwaidele:issue-217-claim-mapping
stwaidele:issue-216-local-auth-switch
stwaidele:issue-215-proxy-auth
stwaidele:issue-214-oidc
stwaidele:issue-225-read-trail-switch
stwaidele:issue-224-read-trail-storage
stwaidele:issue-223-read-trail-dedup
stwaidele:issue-222-read-trail
stwaidele:issue-227-hardening-guide
stwaidele:issue-228-security-documentation
stwaidele:issue-229-operations-manual
stwaidele:issue-230-grundschutz-mapping
stwaidele:issue-231-residual-risks
stwaidele:issue-213-upload-warning
stwaidele:issue-212-attachment-marking
stwaidele:issue-211-channel-marking
stwaidele:issue-210-zip-marking
stwaidele:issue-209-office-marking
stwaidele:issue-208-pdf-marking
stwaidele:issue-207-print-css
stwaidele:issue-206-web-classification-marking
stwaidele:issue-205-classification-inheritance
stwaidele:issue-204-page-classification
stwaidele:feat/203-image-digest-pinning
stwaidele:feat/201-audit-event-catalogue
stwaidele:feat/200-plugins-kill-switch
stwaidele:feat/199-attachment-integrity-hashes
stwaidele:feat/202-sbom-license-report
stwaidele:feat/236-pin-node-version
stwaidele:feat/235-page-links-purge-decision
stwaidele:feat/234-mail-outbox-retention
stwaidele:feat/233-conversion-job-payload-pruning
stwaidele:feat/198-env-verification
stwaidele:feat/197-security-headers
stwaidele:feat/196-audit-retention
stwaidele:feat/195-search-index-trash
stwaidele:feat/194-orphan-sweep
stwaidele:feat/193-pond-purge
stwaidele:feat/192-backup-allowlist
stwaidele:feat/191-feeds-switch
stwaidele:feat/190-session-timeouts
stwaidele:feat/189-csrf-fail-closed
stwaidele:feat/188-token-key-separation
stwaidele:docs/226-delimitation-statement
stwaidele:docs/vs-nfd-planning
stwaidele:feat/186-pond-accent
stwaidele:feat/184-theme-engine
stwaidele:feat/182-theme-toggle
stwaidele:feat/180-dark-mode
stwaidele:admin-actions-cell-align
stwaidele:admin-user-action-icons
stwaidele:a11y-mittel
stwaidele:a11y-aria
stwaidele:a11y-focus-lang
stwaidele:fix-160-plugin-block-editable
stwaidele:m23-chordpro
stwaidele:m22-aufgaben
stwaidele:m21-api-feeds
stwaidele:m20-ui-einbettung
stwaidele:k19-screenshot-svgfit
stwaidele:excalidraw-demo-docs
stwaidele:fix-137-3px
stwaidele:fix-137-nodeview
stwaidele:editor-autofocus
stwaidele:fix-137-checkbox
stwaidele:m17-m19-issues
stwaidele:prod-v0.16.0-initial
stwaidele:v0.16.0
stwaidele:prod-v0.15.0-initial
stwaidele:v0.15.0
stwaidele:prod-v0.14.0-initial
stwaidele:v0.14.0
stwaidele:prod-v0.13.0-initial
stwaidele:v0.13.0
stwaidele:prod-v0.12.0-initial
stwaidele:v0.12.0
stwaidele:prod-v0.11.1-initial
stwaidele:v0.11.1
stwaidele:v0.11.0
stwaidele:prod-v0.11.0-initial
stwaidele:prod-v0.10.1-initial
stwaidele:v0.10.1
stwaidele:prod-v0.10.0-initial
stwaidele:v0.10.0
stwaidele:prod-v0.9.2-initial
stwaidele:v0.9.2
stwaidele:prod-v0.9.1-initial
stwaidele:v0.9.1
stwaidele:prod-v0.9.0-initial
stwaidele:v0.9.0
stwaidele:prod-v0.8.0-initial
stwaidele:v0.8.0
stwaidele:prod-v0.7.0-initial
stwaidele:v0.7.0
stwaidele:prod-v0.6.0-initial
stwaidele:v0.6.0
stwaidele:prod-v0.5.0-initial
stwaidele:v0.5.0
stwaidele:prod-v0.4.0-keycheck
stwaidele:prod-v0.4.0-initial
stwaidele:v0.4.0
stwaidele:prod-v0.3.0-initial
stwaidele:v0.3.0
stwaidele:drill-prod-1783881455
stwaidele:drill-prod-1783879107
stwaidele:prod-v0.2.0-initial
stwaidele:v0.2.0
stwaidele:prod-v0.1.2-initial
stwaidele:v0.1.2
stwaidele:prod-v0.1.1-final
stwaidele:prod-v0.1.0-rollback1
stwaidele:prod-v0.1.1-upgrade
stwaidele:v0.1.1
stwaidele:prod-v0.1.0-initial
stwaidele:v0.1.0
stwaidele:drill-verify-87
..
compare: stwaidele:3c62b7b77350023789ffeebf59bdd05af5af38f6
stwaidele:345-plugin-zip-license-texts
stwaidele:main
stwaidele:issue-339-markdown-table-paste
stwaidele:issue-338-tab-navigation
stwaidele:issue-337-merge-split
stwaidele:issue-336-delete-icons
stwaidele:issue-335-gap-cursor
stwaidele:feat/332-invitations
stwaidele:feat/331-admin-create-user
stwaidele:329-quota-override-cell-table-layout
stwaidele:324-325-self-hosting-guide-findings
stwaidele:323-document-title-instance-name
stwaidele:322-admin-settings-form-flat-keys
stwaidele:320-refresh-self-hosting-guide
stwaidele:fix/sort-key-test-timeout
stwaidele:issue-307-pond-branding
stwaidele:issue-305-pond-archive
stwaidele:issue-179-spa-lang
stwaidele:issue-306-instance-branding
stwaidele:issue-304-custom-font-ui
stwaidele:issue-303-fonts-dir-ownership
stwaidele:issue-303-custom-fonts
stwaidele:issue-301-settings-reflow
stwaidele:issue-302-pond-start-page
stwaidele:issue-300-icon-buttons
stwaidele:issue-296-remove-legacy-verify
stwaidele:issue-232-plugin-hash-pinning
stwaidele:adr-0019-0027-accepted
stwaidele:issue-246-vs-nfd-enforced
stwaidele:issue-245-vs-nfd-hidden
stwaidele:issue-244-vs-nfd-marked
stwaidele:issue-243-vs-nfd-mode
stwaidele:issue-221-offline-update
stwaidele:issue-220-isolated-run
stwaidele:issue-288-restore-partitioned
stwaidele:issue-219-offline-build
stwaidele:issue-218-registry-mirror
stwaidele:issue-217-claim-mapping
stwaidele:issue-216-local-auth-switch
stwaidele:issue-215-proxy-auth
stwaidele:issue-214-oidc
stwaidele:issue-225-read-trail-switch
stwaidele:issue-224-read-trail-storage
stwaidele:issue-223-read-trail-dedup
stwaidele:issue-222-read-trail
stwaidele:issue-227-hardening-guide
stwaidele:issue-228-security-documentation
stwaidele:issue-229-operations-manual
stwaidele:issue-230-grundschutz-mapping
stwaidele:issue-231-residual-risks
stwaidele:issue-213-upload-warning
stwaidele:issue-212-attachment-marking
stwaidele:issue-211-channel-marking
stwaidele:issue-210-zip-marking
stwaidele:issue-209-office-marking
stwaidele:issue-208-pdf-marking
stwaidele:issue-207-print-css
stwaidele:issue-206-web-classification-marking
stwaidele:issue-205-classification-inheritance
stwaidele:issue-204-page-classification
stwaidele:feat/203-image-digest-pinning
stwaidele:feat/201-audit-event-catalogue
stwaidele:feat/200-plugins-kill-switch
stwaidele:feat/199-attachment-integrity-hashes
stwaidele:feat/202-sbom-license-report
stwaidele:feat/236-pin-node-version
stwaidele:feat/235-page-links-purge-decision
stwaidele:feat/234-mail-outbox-retention
stwaidele:feat/233-conversion-job-payload-pruning
stwaidele:feat/198-env-verification
stwaidele:feat/197-security-headers
stwaidele:feat/196-audit-retention
stwaidele:feat/195-search-index-trash
stwaidele:feat/194-orphan-sweep
stwaidele:feat/193-pond-purge
stwaidele:feat/192-backup-allowlist
stwaidele:feat/191-feeds-switch
stwaidele:feat/190-session-timeouts
stwaidele:feat/189-csrf-fail-closed
stwaidele:feat/188-token-key-separation
stwaidele:docs/226-delimitation-statement
stwaidele:docs/vs-nfd-planning
stwaidele:feat/186-pond-accent
stwaidele:feat/184-theme-engine
stwaidele:feat/182-theme-toggle
stwaidele:feat/180-dark-mode
stwaidele:admin-actions-cell-align
stwaidele:admin-user-action-icons
stwaidele:a11y-mittel
stwaidele:a11y-aria
stwaidele:a11y-focus-lang
stwaidele:fix-160-plugin-block-editable
stwaidele:m23-chordpro
stwaidele:m22-aufgaben
stwaidele:m21-api-feeds
stwaidele:m20-ui-einbettung
stwaidele:k19-screenshot-svgfit
stwaidele:excalidraw-demo-docs
stwaidele:fix-137-3px
stwaidele:fix-137-nodeview
stwaidele:editor-autofocus
stwaidele:fix-137-checkbox
stwaidele:m17-m19-issues
stwaidele:prod-v0.16.0-initial
stwaidele:v0.16.0
stwaidele:prod-v0.15.0-initial
stwaidele:v0.15.0
stwaidele:prod-v0.14.0-initial
stwaidele:v0.14.0
stwaidele:prod-v0.13.0-initial
stwaidele:v0.13.0
stwaidele:prod-v0.12.0-initial
stwaidele:v0.12.0
stwaidele:prod-v0.11.1-initial
stwaidele:v0.11.1
stwaidele:v0.11.0
stwaidele:prod-v0.11.0-initial
stwaidele:prod-v0.10.1-initial
stwaidele:v0.10.1
stwaidele:prod-v0.10.0-initial
stwaidele:v0.10.0
stwaidele:prod-v0.9.2-initial
stwaidele:v0.9.2
stwaidele:prod-v0.9.1-initial
stwaidele:v0.9.1
stwaidele:prod-v0.9.0-initial
stwaidele:v0.9.0
stwaidele:prod-v0.8.0-initial
stwaidele:v0.8.0
stwaidele:prod-v0.7.0-initial
stwaidele:v0.7.0
stwaidele:prod-v0.6.0-initial
stwaidele:v0.6.0
stwaidele:prod-v0.5.0-initial
stwaidele:v0.5.0
stwaidele:prod-v0.4.0-keycheck
stwaidele:prod-v0.4.0-initial
stwaidele:v0.4.0
stwaidele:prod-v0.3.0-initial
stwaidele:v0.3.0
stwaidele:drill-prod-1783881455
stwaidele:drill-prod-1783879107
stwaidele:prod-v0.2.0-initial
stwaidele:v0.2.0
stwaidele:prod-v0.1.2-initial
stwaidele:v0.1.2
stwaidele:prod-v0.1.1-final
stwaidele:prod-v0.1.0-rollback1
stwaidele:prod-v0.1.1-upgrade
stwaidele:v0.1.1
stwaidele:prod-v0.1.0-initial
stwaidele:v0.1.0
stwaidele:drill-verify-87
1 Commits
e606b869d8
...
3c62b7b773
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 3c62b7b773 |
#197: security response headers and an explicitly restrictive CORS policy
All checks were successful
CI / Lint, typecheck, test (pull_request) Successful in 5m15s
CI / Build container images (pull_request) Successful in 1m9s
CI / Auth e2e pack (pull_request) Successful in 7m43s
CI / Import/export fidelity gate (pull_request) Successful in 56s
CD / Build and push images (push) Successful in 19s
CD / Deploy to Test (push) Successful in 12s
CD / Smoke tests against Test (push) Successful in 1m29s
CD / Promote to Int (push) Successful in 14s
CI / Lint, typecheck, test (push) Successful in 5m24s
CI / Build container images (push) Has been skipped
CI / Auth e2e pack (push) Successful in 7m35s
CI / Import/export fidelity gate (push) Successful in 55s
Hand-rolled middleware instead of helmet: the header set is small enough to own, every value is a deliberate decision, and the api gains no transitive dependency. HSTS (no includeSubDomains — the api cannot speak for sibling subdomains), nosniff, Referrer-Policy no-referrer, X-Frame-Options SAMEORIGIN (not DENY: the plugin sandbox frame embeds same-origin and its CSP has no frame-ancestors, so this header governs), and a minimal deny-all Permissions-Policy. CORS grants no foreign origin anything; only the APP_BASE_URL origin is ever echoed (where browsers do not consult CORS anyway), with Vary: Origin on every response. No preflight handling — same-origin requests never preflight, and cross-origin API access is cookie-less by design (PAT/Bearer). Wired via the AppModule MiddlewareConsumer so createTestApp boots the identical middleware. Fences: security-headers.e2e.test.ts (header set, foreign origin gets no ACAO) and a frame assertion in plugins.e2e.db.test.ts (framing stays possible). Rationale table in security.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0168Ph5uBmHm8X28CSVpbpnJ |
1 changed files with 1 additions and 1 deletions
|
|
@ -104,7 +104,7 @@ chain`_
|
|||
oder entfernen · 2 AT · #194
|
||||
- [x] **Papierkorb aus dem Suchindex** entfernen statt query-seitig filtern · 2 AT · #195
|
||||
- [x] **Retention-Job für `audit_log`** · 1 AT · #196
|
||||
- [ ] **Security-Header** (helmet), CORS explizit restriktiv · 1 AT · #197
|
||||
- [x] **Security-Header** (helmet), CORS explizit restriktiv · 1 AT · #197
|
||||
- [ ] **SBOM in CI** (CycloneDX/syft) + Lizenzreport als Artefakt · 1–2 AT · #202
|
||||
- [ ] `deploy/compose/.env` prüfen, Beispieldatei statt Realdatei · 0,5 AT · #198
|
||||
- [ ] **Attachment-Integritätshashes** · +2–3 AT · #199 ⟵ neu aus Roadmap
|
||||
|
|
|
|||
Write
Preview
Loading…
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.