Skip to content

Conversation

@svenvoskamp
Copy link
Contributor

@svenvoskamp svenvoskamp commented May 7, 2025

✈️ Introducing AppKit Remote Config

This PR introduces Remote Config support for AppKit, enabling dynamic configuration of features via the Reown Cloud Dashboard, without requiring code changes or redeploys. This improves the developer experience and ensures greater flexibility in managing feature availability.

🧠 Overview

AppKit will now fetch and apply remote feature configurations from Cloud on initialization. This change centralizes feature management and removes the need for hardcoded flags in local configs.

🆕 changes

🛠️ ConfigUtil

The configUtil is a new introduced util that we use to fetch the user's features config from Cloud.

🧩 OptionsController

We will add a new parameter to the OptionsController called remoteFeatures which contains the users config.

🖼️ Partials / Views Integrations

Use optionsController.remoteFeatures.. value in stead of using optionsController.features for specific features

🔬 Tests

Use optionsController.remoteFeatures.. value in stead of using optionsController.features for specific features

🧪 Lab

Update most lab configs to remove redudant configs

🧪 Demo

Make the demo compatible with newly introduced remoteFeatures

⸻⸻⸻⸻⸻⸻⸻⸻⸻

Type of change

  • Chore (non-breaking change that addresses non-functional tasks, maintenance, or code quality improvements)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Associated Issues

For Linear issues: Closes APKT-2285
For GH issues: closes #...

Showcase (Optional)

If there is a UI change include the screenshots with before and after state.
If new feature is being introduced, include the link to demo recording.

Checklist

  • Code in this PR is covered by automated tests (Unit tests, E2E tests)
  • My changes generate no new warnings
  • I have reviewed my own code
  • I have filled out all required sections
  • I have tested my changes on the preview link
  • Approver of this PR confirms that the changes are tested on the preview link

@changeset-bot
Copy link

changeset-bot bot commented May 7, 2025

🦋 Changeset detected

Latest commit: c5c2967

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 21 packages
Name Type
@reown/appkit-adapter-solana Patch
@reown/appkit-adapter-wagmi Patch
@reown/appkit-wallet-button Patch
@reown/appkit-controllers Patch
@reown/appkit-scaffold-ui Patch
@reown/appkit Patch
@reown/appkit-common Patch
@reown/appkit-ui Patch
@reown/appkit-adapter-bitcoin Patch
@reown/appkit-adapter-ethers Patch
@reown/appkit-adapter-ethers5 Patch
@reown/appkit-utils Patch
@reown/appkit-cdn Patch
@reown/appkit-cli Patch
@reown/appkit-core Patch
@reown/appkit-experimental Patch
@reown/appkit-pay Patch
@reown/appkit-polyfills Patch
@reown/appkit-siwe Patch
@reown/appkit-siwx Patch
@reown/appkit-wallet Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link

vercel bot commented May 7, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
appkit-demo ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 23, 2025 2:45pm
appkit-laboratory ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 23, 2025 2:45pm
11 Skipped Deployments
Name Status Preview Comments Updated (UTC)
appkit-basic-ep ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-basic-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-basic-sign-client-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-basic-up-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-ethers5-bera ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-nansen-demo ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-vue-solana ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
appkit-wagmi-cdn-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
ethereum-provider-wagmi-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
next-wagmi-solana-bitcoin-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm
vue-wagmi-example ⬜️ Ignored (Inspect) May 23, 2025 2:45pm

@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2025

Warnings
⚠️ File apps/demo/components/social-option-item/social-option-item.tsx contains a KEY or SECRET
⚠️ File apps/demo/contexts/appkit-context.tsx contains a KEY or SECRET
⚠️ File apps/demo/providers/appkit-context-provider.tsx contains a KEY or SECRET
⚠️ File apps/laboratory/app/library/wagmi-permissions-async/page.tsx contains a KEY or SECRET
⚠️ File apps/laboratory/app/library/wagmi-permissions-sync/page.tsx contains a KEY or SECRET
⚠️ File apps/laboratory/tests/multichain-extension.spec.ts contains a KEY or SECRET
⚠️ File apps/laboratory/tests/shared/pages/ModalPage.ts contains a KEY or SECRET
⚠️ File apps/laboratory/tests/shared/validators/ModalValidator.ts contains a KEY or SECRET
⚠️ File examples/html-ak-basic/src/main.js contains a KEY or SECRET
⚠️ File packages/adapters/solana/src/providers/SolanaWalletConnectProvider.ts contains a KEY or SECRET
⚠️ File packages/adapters/solana/src/tests/client.test.ts contains a KEY or SECRET
⚠️ File packages/adapters/wagmi/src/client.ts contains a KEY or SECRET
⚠️ File packages/adapters/wagmi/src/tests/client.test.ts contains a KEY or SECRET
⚠️ File packages/appkit/src/client/appkit-base-client.ts contains a KEY or SECRET
⚠️ File packages/appkit/src/utils/TypesUtil.ts contains a KEY or SECRET
⚠️ File packages/appkit/tests/client/initialization.test.ts contains a KEY or SECRET
⚠️ File packages/appkit/tests/client/public-methods.test.ts contains a KEY or SECRET
⚠️ Testing spec changed
⚠️ File packages/controllers/src/controllers/ApiController.ts contains a KEY or SECRET
⚠️ File packages/controllers/src/controllers/OnRampController.ts contains a KEY or SECRET
⚠️ File packages/controllers/src/controllers/OptionsController.ts contains a KEY or SECRET
⚠️ File packages/controllers/src/utils/ConstantsUtil.ts contains a KEY or SECRET
⚠️ File packages/controllers/src/utils/OptionsUtil.ts contains a KEY or SECRET
⚠️ File packages/controllers/src/utils/TypeUtil.ts contains a KEY or SECRET
⚠️ File packages/controllers/tests/controllers/OnRampController.test.ts contains a KEY or SECRET
⚠️ File packages/controllers/tests/utils/OptionsUtil.test.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/partials/w3m-account-default-widget/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/partials/w3m-account-tokens-widget/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/partials/w3m-account-wallet-features-widget/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/partials/w3m-legal-footer/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/partials/w3m-social-login-list/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/partials/w3m-social-login-widget/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/views/w3m-connect-view/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/views/w3m-connecting-wc-view/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/views/w3m-email-login-view/index.ts contains a KEY or SECRET
⚠️ File packages/scaffold-ui/src/views/w3m-onramp-providers-view/index.ts contains a KEY or SECRET
⚠️ File packages/wallet-button/src/controllers/ApiController.ts contains a KEY or SECRET
⚠️ File packages/appkit/src/utils/ConfigUtil.ts contains a KEY or SECRET
⚠️ File packages/appkit/src/utils/ConfigUtil.ts contains a KEY or SECRET

Generated by 🚫 dangerJS against c5c2967

@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2025

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 76.44% 27235 / 35627
🔵 Statements 76.44% 27235 / 35627
🔵 Functions 68.16% 2312 / 3392
🔵 Branches 83.79% 5500 / 6564
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/adapters/solana/src/providers/SolanaWalletConnectProvider.ts 82.06% 88.88% 78.94% 82.06% 69-76, 155-165, 179-180, 204-205, 210-211, 214-223, 281-288, 292-299
packages/adapters/wagmi/src/client.ts 79.35% 63.55% 82.35% 79.35% 106-107, 112-113, 124-126, 128, 180-181, 223-227, 252-253, 303-304, 415, 456-457, 478-479, 483-484, 490-497, 517-528, 537-538, 549-550, 571-573, 587-588, 610-611, 619-620, 625-626, 630-635, 642-643, 651-652, 657-658, 667-668, 676-677, 682-683, 689-711, 714-730
packages/appkit/src/client/appkit-base-client.ts 74.93% 88.06% 77.5% 74.93% 171, 190-191, 223-224, 226-227, 232-233, 316-317, 353-359, 393-394, 415-421, 424-425, 442-443, 447, 454-455, 486-490, 503-517, 542-548, 552-564, 567-569, 572-574, 577-579, 582-584, 587-593, 596-598, 601-607, 623-635, 641-674, 677-687, 739-740, 746, 757-771, 777, 781-788, 801-805, 846, 888-892, 898-899, 911, 934-939, 1010, 1014-1015, 1021, 1042-1043, 1053, 1055-1071, 1076, 1115-1116, 1129-1140, 1173-1181, 1226, 1232-1236, 1265-1268, 1272, 1288-1298, 1320-1331, 1360-1361, 1367-1393, 1556-1557, 1589-1590, 1593-1594, 1609-1612, 1615-1616, 1636-1637, 1640-1641, 1663-1664, 1678, 1686, 1689, 1693, 1698-1717, 1720-1729, 1744-1745, 1788-1789, 1877-1878, 1881-1882, 1885-1888, 1891-1892, 1895-1896, 1899-1900, 1903-1904, 1907-1911, 1920-1929, 1938-1949, 1327, 1700-1721
packages/appkit/src/client/appkit.ts 53% 79.31% 85% 53% 67-81, 84-91, 94-110, 113-119, 124, 128, 134-137, 165-170, 177-180, 183-186, 189-196, 204-205, 212-213, 248-257, 260-262, 273-285, 287, 289-308, 310-324, 331-332, 348-355, 382-383, 387-463, 500-504, 526-527, 550-552, 560-561, 600-601, 169
packages/appkit/src/utils/ConfigUtil.ts 93.71% 87.77% 93.1% 93.71% 33-34, 54-55, 80-81, 94, 104-105, 118, 146, 181-182
packages/appkit/src/utils/TypesUtil.ts 100% 100% 100% 100%
packages/common/src/utils/TypeUtil.ts 100% 100% 100% 100%
packages/controllers/src/controllers/ApiController.ts 94.55% 92.5% 85.45% 94.55% 108-109, 164, 206, 213-214, 404-412, 439, 453, 457, 461
packages/controllers/src/controllers/OnRampController.ts 99.27% 84.84% 80.95% 99.27% 141
packages/controllers/src/controllers/OptionsController.ts 86.28% 98% 53.16% 86.28% 227, 251-252, 299, 303, 357-360, 364-367, 371-374, 378-381, 418, 344, 413
packages/controllers/src/utils/ConstantsUtil.ts 100% 0% 100% 100%
packages/controllers/src/utils/OptionsUtil.ts 55.55% 66.66% 100% 55.55% 17-18, 21-30
packages/scaffold-ui/src/partials/w3m-account-default-widget/index.ts 80.63% 79.22% 68% 80.63% 75-76, 85, 90-96, 145, 151-152, 173, 196-197, 235, 257, 281, 285-286, 289-290, 293-294, 297-298, 313, 348, 353-354, 367-368, 374, 387-389, 408, 418-419, 423-435, 459-461, 432
packages/scaffold-ui/src/partials/w3m-account-tokens-widget/index.ts 89.18% 92.85% 77.77% 89.18% 37, 40, 47-48, 60, 74, 88, 103
packages/scaffold-ui/src/partials/w3m-account-wallet-features-widget/index.ts 68.57% 78.94% 66.66% 68.57% 71, 74-82, 93-95, 126, 141, 145-146, 160, 163, 181, 201, 220, 240, 262-263, 265-266, 268-269, 276-280, 296, 298, 308, 312-313, 326-327, 330-352, 355-356, 359-372, 348-369
packages/scaffold-ui/src/partials/w3m-legal-footer/index.ts 82.75% 76.47% 87.5% 82.75% 43, 56, 69-70, 78-79, 89-93
packages/scaffold-ui/src/partials/w3m-social-login-list/index.ts 78.48% 73.33% 75% 78.48% 43-44, 56-57, 67-68, 71-72, 85, 87, 105-111
packages/scaffold-ui/src/partials/w3m-social-login-widget/index.ts 59.03% 68.96% 83.33% 59.03% 53-54, 80, 89-92, 95-96, 109, 114, 116, 129, 138-139, 142-143, 150-192, 197-198, 210-217, 232-238
packages/scaffold-ui/src/utils/HelpersUtil.ts 84.61% 83.33% 100% 84.61% 15-16
packages/scaffold-ui/src/views/w3m-connect-view/index.ts 83.88% 83.01% 88.88% 83.88% 82, 85-86, 90, 110, 157-158, 167, 202, 216, 227, 266, 270, 282, 293, 307-308, 311-312, 322, 343-344, 355, 370-371, 376-400, 410-411
packages/scaffold-ui/src/views/w3m-connecting-wc-view/index.ts 68.75% 65.9% 66.66% 68.75% 52-53, 61, 70, 82-83, 92, 100-109, 121-122, 136-137, 145-146, 157, 161-164, 169, 173, 190, 194-208
packages/scaffold-ui/src/views/w3m-email-login-view/index.ts 33.33% 100% 0% 33.33% 22-27, 31-46, 50-56
packages/scaffold-ui/src/views/w3m-onramp-providers-view/index.ts 91.66% 66.66% 87.5% 91.66% 35, 65, 86, 113-114, 117-118, 128
packages/ui/src/composites/wui-ux-by-reown/index.ts 54.54% 100% 0% 54.54% 17-36
packages/wallet-button/src/controllers/ApiController.ts 100% 100% 100% 100%
Generated in workflow #12070 for commit c5c2967 by the Vitest Coverage Report Action

@svenvoskamp
Copy link
Contributor Author

@tomiir I adjusted configUtil.ts, could you check it again?

@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License

View full report

@svenvoskamp svenvoskamp added this pull request to the merge queue May 23, 2025
Merged via the queue into main with commit 43e5a9d May 23, 2025
39 checks passed
@svenvoskamp svenvoskamp deleted the feat/remote-config branch May 23, 2025 15:13
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.

4 participants