Skip to content

Release 0.13.31#86

Merged
DomValladolid merged 7 commits into
release/0.13.31from
staging
May 25, 2026
Merged

Release 0.13.31#86
DomValladolid merged 7 commits into
release/0.13.31from
staging

Conversation

@DomValladolid
Copy link
Copy Markdown
Collaborator

@DomValladolid DomValladolid commented May 25, 2026

sashyo and others added 6 commits May 25, 2026 13:16
verify: pin JWS algorithm allowlist (alg-confusion guard), add clockTolerance,
  only enforce azp when a resource/client is configured.
nextjs: fix middleware returning 500 on auth failure (guard optional onFailure),
  fix glob route matcher so '*' actually works and a trailing '/*' also matches
  the bare base path, add cookieName option, loosen peerDeps to next>=13.5/react>=18.
js: set SameSite=Lax/Secure on the kcToken cookie, sanitize post-login return URL
  (open-redirect), fix updateIAMToken/native getToken token handling, require
  use_dpop_nonce before retrying a 401, and enable+enforce DPoP by default
  (opt out with useDPoP:false or {mode:'auto'}).
react: memoize the context value, fix the 'ready' listener leak, guard
  useAuthCallback for SSR and post-unmount, type authMode 'hybrid', clear tokenExp
  on logout, fix the cjs exports/require path.
create-nextjs: fix middleware onError signature and tcinit subscription email,
  populate the empty ts next.config.js, fix the route matcher, drop the
  non-existent TideCloakContext import.
packaging: emit correct CJS/ESM per-package (tsconfig + dist type markers),
  fix exports maps, add metadata, make @tidecloak/policy an optional peer.
tests/docs: add unit tests (verify, route matcher) and update READMEs/docs.
- New /encrypt page with full lifecycle: create -> approve (enclave) -> commit -> encrypt/decrypt
- Two access models via one Forseti contract: owner-bound ('private to me', owner:<vuid>) and role-shared
- Server-side in-memory policy store + /api/policies route; tideSerialization + forsetiContract helpers
- Voucher-gate roles (_tide_x.selfencrypt/.selfdecrypt) in realm.json
- next.config webpack workaround + 'next dev/build --webpack'; deps: @tideorg/js, heimdall-tide, asgard-tide
- 3-step stepper UI (commit locked until approved) + Home link
- README: policy-encryption section and updated project tree
- Mirrored across TypeScript and JavaScript templates
Revert the policy-governed (Forseti) encryption demo and replace it with simple
self encrypt/decrypt directly on the home page:

- Remove /encrypt page, /api/policies route, lib/ (policyStore, forsetiContract,
  tideSerialization), extra deps (@tideorg/js, heimdall-tide, asgard-tide),
  the webpack workaround/--webpack scripts, and the _tide_x voucher-gate roles
- Add an inline Encrypt/Decrypt text field on the home page using doEncrypt/doDecrypt
  from useTideCloak() with the existing _tide_dob tag (self-encryption: only the
  user who encrypted can decrypt)
- Keep the one-line protected/route.ts type fix (verifyTideCloakToken result cast)
- Mirrored across TypeScript and JavaScript templates
- realm.json: _tide_dob.selfencrypt/.selfdecrypt -> _tide_message.* (roles + default composite)
- home page: TAG 'dob' -> 'message'
- TS and JS templates
- Home page now has one always-decrypted, editable field; Submit encrypts the
  value, persists the ciphertext in localStorage (keyed by vuid), then decrypts
  it back so the field keeps showing plaintext ('Message successfully stored')
- On login, the saved ciphertext is decrypted client-side so the note reappears
- Explanatory sentence: encrypted textbox under your own identity, only you can decrypt
- TS and JS templates
@sashyo sashyo added the release label May 25, 2026
@DomValladolid DomValladolid merged commit 6c3050c into release/0.13.31 May 25, 2026
1 check passed
@sashyo sashyo deleted the staging branch May 25, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants