Commit 5a88a99
authored
chore(release): prepare 0.2.5 (#35)
* docs: open v1.15 milestone — AUD-14 planning truth + phase 78
* chore: archive v1.15 milestone files
Made-with: Cursor
* chore: remove REQUIREMENTS.md for v1.15 milestone
Made-with: Cursor
* feat(audit): v1.16 transactional api.token_verify.failure (phase 79 AUD-16)
* chore: archive v1.16 milestone files
Made-with: Cursor
* chore: remove REQUIREMENTS.md for v1.16 milestone
Made-with: Cursor
* docs: start milestone v1.17 forced-change audit atomicity
* docs: define milestone v1.17 requirements
* docs: create milestone v1.17 roadmap (1 phase)
* docs(80): capture phase context and audit defaults
* docs(state): record phase 80 context session
* docs(phase-80): research, validation strategy, and executable plans
* feat(80-01): add clear_password_change_requirement/3 and deprecate audit_forced_password_change
Made-with: Cursor
* test(80-01): add Postgres atomicity tests for clear_password_change_requirement
Made-with: Cursor
* docs(phase-80): complete v1.17 AUD-17 — inventory, C-1, CHANGELOG, milestone archives
- Ship planning truth for AUD-04-043 / EX-44-05 (44 inventory, 09 verification, 09-03-SUMMARY)
- Add 80-01/80-02 SUMMARY, 80-REVIEW, 80-VERIFICATION; archive v1.17 ROADMAP/REQUIREMENTS
- Fix STATE/ROADMAP/PROJECT after phase completion; REQUIREMENTS marked complete
Made-with: Cursor
* chore: archive v1.17 milestone
Remove live REQUIREMENTS.md for a clean next milestone; add MILESTONES
and RETROSPECTIVE entries; point ROADMAP at archived requirements; sync
STATE and PROJECT footers.
Made-with: Cursor
* docs: start milestone v1.18 JWT refresh audit atomicity
* docs: define milestone v1.18 requirements
* docs: create milestone v1.18 roadmap (1 phase)
* docs(81): capture phase context + audit defaults shift-left
* docs(state): record phase 81 context session
* docs(81): research, validation strategy, and executable plans for JWT audit atomicity
Made-with: Cursor
* feat(81-01): transactional Multi audit for JWT refresh and reuse
Implement commit_api_token_jwt_audit/3 mirroring verify-failure audit path:
Repo.transaction + Audit.log_multi_safe, telemetry from changes, invalid
changeset and constraint_violation handling. Replace log_safe in audit_jwt_*.
Refs: AUD-18-01, AUD-18-02
Made-with: Cursor
* docs(81-01): plan summary for JWT Multi audit
Made-with: Cursor
* test(81-02): ExUnit coverage for JWT refresh Multi audit paths
Happy path, audit-off, CHECK fault injection with log_safe_error telemetry
for api.jwt_refresh and api.jwt_refresh_reuse.
Refs: AUD-18-03
Made-with: Cursor
* docs(81-03): AUD-18 planning truth and phase 81 verification
Align AUD-04-048/049 across 44/45 inventories and 09 C-1; CHANGELOG
[Unreleased]; 81-VERIFICATION merge gate; 09-03-SUMMARY bounded-batch note.
Refs: AUD-18-04
Made-with: Cursor
* docs(81-02): plan summary for JWT audit ExUnit coverage
Made-with: Cursor
* docs(81-03): plan summary for AUD-18 planning alignment
Made-with: Cursor
* docs(phase-81): complete milestone tracking and verification status
Mark AUD-18 requirements done; archive v1.18 in ROADMAP; fix STATE after
phase.complete; add 81-REVIEW quick pass; 81-VERIFICATION status passed.
Refs: AUD-18
Made-with: Cursor
* docs(09-03): document status line for phase 81 AUD-18
Made-with: Cursor
* docs(phase-81): add/update security threat verification
* docs(phase-81): add/update validation strategy
* docs: start milestone v1.19 JWT persistence audit co-fate + MFA 022
* docs(82): capture JWT refresh persistence audit co-fate context
* docs(state): record phase 82 context session
* docs(state): fix resume path after phase 82 discuss
* docs(phase-82): research, validation strategy, and executable plans (AUD-19)
* docs(phase-82): drop spurious PLANNING COMPLETE markers from plans
* feat(phase-82): JWT refresh persistence + audit co-fate (AUD-19)
- Compose user_tokens rotation/reuse and api.jwt_refresh* in one Repo.transaction
when :audit_schema is set (Sigra.JWT.refresh/3, Sigra.Auth.refresh_jwt/2).
- Add APIToken.append_api_token_jwt_audit_to_multi/3 and jwt_refresh_audit_multi_opts.
- RefreshToken: Multi builders, classify_refresh_token, rotate_with_reuse_meta;
emit refresh_reuse_detected from JWT only.
- Add test/sigra/jwt_refresh_audit_cofate_test.exs (async: false).
- Planning: 44/45/09 inventories, 09-03-SUMMARY, CHANGELOG, 82-VERIFICATION (pending
until Postgres mix test run), REQUIREMENTS AUD-19 checkboxes, ROADMAP/STATE.
Made-with: Cursor
* docs(83): phase context, discuss log, D-AUD-12, GSD discuss prefs
* docs(state): record phase 83 discuss session
* docs(83): research, validation strategy, and executable plans for AUD-04-022
* feat(83-01): route confirm_enrollment invalid TOTP audit through commit_ad_hoc_mfa_audit
AUD-20-01: use Repo.transaction + Multi + log_multi_safe when :audit_schema
is set; skip audit-only work when absent. Document return contract (D-83-02).
Made-with: Cursor
* test(83-02): cover confirm_enrollment invalid TOTP audit matrix
AUD-20-02: audit on writes mfa.enroll.failure with metadata; audit off skips;
CHECK guard emits log_safe_error without changing {:error, :invalid_code}.
Made-with: Cursor
* docs(83-03): AUD-20 planning truth for confirm_enrollment 022
Update 44 inventory + EX-44-02, 09 C-1 and summary, CHANGELOG [Unreleased];
add 83-VERIFICATION merge gate and 83-REVIEW quick pass.
Made-with: Cursor
* docs(phase-83): complete phase execution — ROADMAP, STATE, REQUIREMENTS, PROJECT
Mark v1.19 Phases 82–83 shipped; advance focus to 999.1; check off AUD-20.
Made-with: Cursor
* docs(84-01): reconcile live routing surfaces
- point active planning state at Phase 84 instead of 999.1
- mark 999.x as archaeology-only and reserve future work for newly numbered phases
* docs(84-01): add routing cleanup verification artifact
- record requirement-level evidence for live routing cleanup
- capture exact grep and file-existence checks for the 999.1 tombstone chain
* docs(84-01): complete routing honesty reconciliation plan
- record phase 84 summary and self-check results
- mark planning state and roadmap surfaces complete for the routing cleanup
* docs(phase-84): verify and finalize routing honesty reconciliation
* chore(release): prepare 0.2.51 parent 3bf48a6 commit 5a88a99
83 files changed
Lines changed: 6045 additions & 241 deletions
File tree
- .planning
- milestones
- phases
- 09-audit-logging
- 44-mfa-account-api-atomic-batches
- 45-oauth-ops-c1-signoff
- 78-account-api-c1-planning-truth
- 79-api-token-verify-failure-audit
- 80-forced-password-change-audit
- 81-jwt-refresh-audit-atomicity
- 82-jwt-refresh-persistence-audit-cofate
- 83-mfa-confirm-enrollment-022
- 84-routing-honesty-reconciliation
- lib/sigra
- jwt
- test/sigra
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | | - | |
| 117 | + | |
118 | 118 | | |
119 | 119 | | |
120 | 120 | | |
| |||
489 | 489 | | |
490 | 490 | | |
491 | 491 | | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
0 commit comments