Publish the reviewed Web Foundations v0.1.0-preview.3 snapshot with cryptographic temporary credentials, explicit forced-rotation state, atomic password replacement and session revocation, additive SQLite migration, tests, and application-boundary documentation. Exported from reviewed private source b8fb4ff3cd012859f2d307dfb2a1cc783a38f6db after trusted CI run 257 and exact Go 1.26.6 verification. Material implementation assistance provided by OpenAI Codex; reviewed and verified through the maintainer workflow. Signed-off-by: Cole Speelman <crspeelman@gmail.com>
This commit is contained in:
+17
-1
@@ -25,7 +25,7 @@ The packages are ordinary Go imports. Pin the current preview and verify its
|
||||
module checksum:
|
||||
|
||||
```bash
|
||||
go get gamertan.com/web/requestmeta@v0.1.0-preview.2
|
||||
go get gamertan.com/web/requestmeta@v0.1.0-preview.3
|
||||
go mod verify
|
||||
```
|
||||
|
||||
@@ -51,6 +51,22 @@ hops satisfy the resolver's trust policy. Metadata, authentication, or storage
|
||||
failures that affect security decisions should stop the request rather than
|
||||
quietly changing identity or policy.
|
||||
|
||||
## Bootstrap an account without inventing a permanent password
|
||||
|
||||
`auth.GenerateTemporaryPassword` returns 256 bits of URL-safe cryptographic
|
||||
entropy. An application can store that value in a newly created private file
|
||||
and provision an account with `RequirePasswordChange: true`. The library does
|
||||
not write or print the credential because file ownership, operator identity,
|
||||
and delivery are application policy.
|
||||
|
||||
After authentication, inspect `principal.User.PasswordChangeRequired`. Until it
|
||||
is false, permit only password change and logout. `auth.ChangePassword` verifies
|
||||
the current credential, rejects reuse, writes the new Argon2id hash, clears the
|
||||
requirement, and revokes every existing session atomically through the storage
|
||||
adapter. Clear the browser cookie and require a fresh login after success. Do
|
||||
not treat a redirect alone as enforcement; apply the restriction before every
|
||||
protected handler.
|
||||
|
||||
## Add HTML without merging responsibilities
|
||||
|
||||
Handlers should convert request and service state into typed display data.
|
||||
|
||||
@@ -14,6 +14,15 @@ errors, separate safe/sensitive analytics projections, organization-scoped
|
||||
bindings, single-use invitation digests, and short-lived audited break-glass
|
||||
grants.
|
||||
|
||||
An application may create an account with a cryptographically generated
|
||||
temporary credential and `RequirePasswordChange`. Successful rotation compares
|
||||
the current credential, replaces its Argon2id hash, clears the requirement, and
|
||||
revokes every session in one repository transaction. The application must
|
||||
restrict such a principal to password change and logout until rotation succeeds;
|
||||
the library does not infer route policy. Temporary credentials must be written
|
||||
to a private channel or mode-`0600` file and must never be printed into logs,
|
||||
manifests, process arguments, or deployment state.
|
||||
|
||||
Unsafe methods without an exact Origin or trustworthy same-origin Fetch
|
||||
Metadata fail the origin check. Authentication middleware fails closed when its
|
||||
service or `__Host-` cookie policy is invalid. Imported request records have
|
||||
|
||||
Reference in New Issue
Block a user