Skip to content

fix(IDS-7369): repin @hapi/hapi 21.4.9 and @aws-sdk/client-s3 3.1064.0 - #452

Merged
sauntimo merged 4 commits into
masterfrom
IDS-7369
Aug 17, 2026
Merged

fix(IDS-7369): repin @hapi/hapi 21.4.9 and @aws-sdk/client-s3 3.1064.0#452
sauntimo merged 4 commits into
masterfrom
IDS-7369

Conversation

@hamzabenali-okta

@hamzabenali-okta hamzabenali-okta commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

✏️ Changes

Repin @hapi/hapi and @aws-sdk/client-s3 to the versions now available in our runtime module store, so the Authorization Extension consumes the patched transitive dependencies at runtime and clears two dependency security findings.

  • @hapi/hapi 21.3.321.4.9 — pulls @hapi/content 6.0.06.0.2.
  • @aws-sdk/client-s3 3.738.03.1064.0 — the newer SDK dropped fast-xml-parser (and its strnum dep) entirely, resolving that finding.

Design standpoint: both packages are declared as auth0-extension.externals, so they are resolved from the runtime module store rather than bundled. Repinning the externals (and the matching dependencies entries) is what actually picks up the fixes. No production code changed.

Code itself:

  • package.json — repin both externals + dependencies; bump version 2.13.42.13.5.
  • server/plugins/html.js — bump EXTENSION_VERSION to 2.13.5.
  • CHANGELOG.md — add a 2.13.5 entry.
  • package-lock.json — regenerated; churn is confined entirely to the @aws-sdk / @smithy / @hapi trees of the two externals. No new packages added.
  • tests/unit/server/s3-storage-context.tests.js — the newer SDK folded @smithy/util-stream into @smithy/core/serde; repoint that test-only sdkStreamMixin import. Not a production dependency.
  • dist/ — rebuilt at 2.13.5. The UI bundle rebuilds byte-identical to 2.13.4 modulo the version string; the extension bundle differs only in the two external require("name@version") strings and CLIENT_VERSION.

Why the dependency update is needed: the security findings flag outdated transitive libraries (@hapi/content@6.0.0, fast-xml-parser@4.4.1). The fixed versions only become reachable once the parent externals are bumped to the runtime-store-available releases.

📷 Screenshots

Local testing
Screenshot 2026-07-21 at 13 49 13

🔗 References

  • Internal tracking ticket (see linked issue).
  • Companion change that made the updated externals available in the runtime module store.
  • Prior pattern: the earlier axios bump PR (rebuild 2.13.4).

🎯 Testing

All 523 unit tests pass. The full S3StorageContext suite (read, write, and every region-redirect error path) was re-verified against @aws-sdk/client-s3@3.1064.0 using the aws-sdk-client-mock harness.

✅ This change has been tested in a Webtask

✅ This change has unit test coverage

🚫 This change has integration test coverage

🚫 This change has been tested for performance

🚀 Deployment

✅ This can be deployed any time — the required externals (@hapi/hapi@21.4.9, @aws-sdk/client-s3@3.1064.0) are already available in the runtime module store, so there is no lockstep dependency.

🎡 Rollout

In order to verify that the deployment was successful we will confirm the new 2.13.5 version is serving in the develop environment, exercise the S3 storage path, and confirm the two dependency findings are cleared on the next security scan.

🔥 Rollback

We will rollback if the extension fails to start on the repinned externals, or if the S3 storage read/write path regresses in production.

📄 Procedure

Revert to the previous 2.13.4 bundle and republish the extension. Since this is an externals/version repin with no data-model or config change, rollback is a straight redeploy of the prior version with no migration required.

@sauntimo sauntimo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested in prod with webtask and s3 storage. Good to merge & deploy. Thanks @hamzabenali-okta!

hamzabenali-okta and others added 4 commits August 17, 2026 10:34
Now that @hapi/hapi@21.4.9 and @aws-sdk/client-s3@3.1064.0 are available in
the node22 verquire store (IDS-7307), repin both externals/dependencies so
the extension consumes the patched transitive deps at runtime:

- @hapi/content 6.0.0 -> 6.0.2  (clears SEC-29155)
- fast-xml-parser removed entirely by the newer SDK  (clears SEC-9999)

The changed lockfile entries are confined to the @aws-sdk / @smithy / @Hapi
trees of the two externals; no client-side or bundled server dependency
changed. Bump version to 2.13.6 (2.13.5 was taken by the React 18 migration).

The s3 test imported sdkStreamMixin from @smithy/util-stream, which the newer
SDK folded into @smithy/core/serde; repoint that test-only import. No new npm
packages added (all resolved from a0us.jfrog.io).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rebuild dist/ at 2.13.6 on top of the React 18 client code. The extension
bundle differs from 2.13.5 only in the two external require("name@version")
strings and CLIENT_VERSION — externals are not bundled and no bundled server
dependency changed. The UI bundle is a genuine rebuild; its remaining delta vs
2.13.5 is webpack module-id renumbering from the changed dependency graph.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sauntimo
sauntimo merged commit f1790ce into master Aug 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants