Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
f1673f6
Merge pull request #5857 from thematters/develop
zeckli Feb 3, 2026
2894115
fix(likecoin): fix the like pay still showing up
zeckli Feb 3, 2026
5330003
Merge pull request #5860 from thematters/fix/likecoin
zeckli Feb 3, 2026
0c10529
Merge pull request #5859 from thematters/fix/likecoin
zeckli Feb 3, 2026
25e7e1f
feat(sentry): renew the sentry dsn
zeckli Mar 2, 2026
23a81df
Merge pull request #5863 from thematters/feat/sentry
zeckli Mar 4, 2026
a8fdada
feat(sentry): update the ci setting for the sentry
zeckli Mar 9, 2026
2d7d5d1
Merge pull request #5864 from thematters/feat/sentry
zeckli Mar 9, 2026
06c1a46
chore(release): bump the version to v6.8.1
zeckli Mar 9, 2026
d46e824
Merge pull request #5866 from thematters/chore/release
zeckli Mar 9, 2026
f7f3e41
Merge branch 'master' into develop
zeckli Mar 10, 2026
d23a6e7
Merge pull request #5865 from thematters/develop
zeckli Mar 10, 2026
887f549
feat(alchemy): renew the alchemy setting
zeckli Mar 12, 2026
59ed5b1
Merge pull request #5867 from thematters/feat/alchemy
zeckli Mar 12, 2026
8473ab6
Merge branch 'master' into develop
zeckli Mar 12, 2026
884f612
chore(release): bump the version to v6.8.2
zeckli Mar 12, 2026
222c356
feat(threads): support threads oauth
zeckli Mar 17, 2026
290a16a
Merge pull request #5869 from thematters/chore/release
zeckli Mar 18, 2026
cb621ef
feat(threads): update the threads client id
zeckli Mar 18, 2026
14f3a32
Merge branch 'develop' into feat/threads
zeckli Mar 18, 2026
7b7c18a
Merge pull request #5870 from thematters/feat/threads
zeckli Mar 18, 2026
bc768c0
feat(threads): add the trackers for threads oauth
zeckli Mar 19, 2026
23b6479
Merge pull request #5871 from thematters/feat/threads
zeckli Mar 20, 2026
d51c53e
feat(threads): threads login temp hidden
zeckli Mar 25, 2026
30c8b55
Merge pull request #5872 from thematters/feat/threads
zeckli Mar 25, 2026
1443be2
Merge pull request #5868 from thematters/develop
zeckli Mar 25, 2026
20b53fe
feat(threads): threads login temp hidden
zeckli Mar 25, 2026
cbb74cf
Merge pull request #5873 from thematters/feat/threads
zeckli Mar 25, 2026
34a56fb
chore(release): bump the version to v6.8.3
zeckli Mar 25, 2026
bc58687
Merge pull request #5875 from thematters/chore/release
zeckli Mar 25, 2026
5c06ffc
Merge branch 'master' into develop
zeckli Mar 25, 2026
695960f
Merge pull request #5874 from thematters/develop
zeckli Mar 25, 2026
73d07a3
feat(tos): update the all terms
zeckli May 4, 2026
c1f9a22
feat(tos): update the terms
zeckli May 4, 2026
770c596
Merge pull request #5876 from thematters/tos
zeckli May 4, 2026
d761431
chore(version): bump the version
zeckli May 4, 2026
0273545
Merge pull request #5878 from thematters/bump
zeckli May 4, 2026
0c319e9
Merge branch 'master' into develop
zeckli May 5, 2026
4586f99
Merge pull request #5877 from thematters/develop
zeckli May 5, 2026
a6aa656
chore(version): bump the version due to deployment issue
zeckli May 5, 2026
e5fd3cf
Merge pull request #5879 from thematters/bump
zeckli May 5, 2026
8e8b431
Merge branch 'master' into develop
zeckli May 5, 2026
54fbd84
Merge pull request #5880 from thematters/develop
zeckli May 5, 2026
ed4e97e
Add Community Watch comment controls
May 10, 2026
edf3af4
Merge pull request #5881 from thematters/codex/community-watch-phase3
mashbean May 11, 2026
e17a112
Guard root viewer oss query (#5882)
mashbean May 11, 2026
31e88ef
Add Fediverse export controls (#5883)
mashbean May 11, 2026
b11956d
fix(schedule): fix the schedule option logic that causes alert
zeckli May 12, 2026
35d65bb
Merge branch 'develop' into fix/schedule
zeckli May 12, 2026
69859bc
Merge pull request #5884 from thematters/fix/schedule
zeckli May 12, 2026
01f245b
fix(schedule): fix the schedule option logic that causes alert
zeckli May 12, 2026
ae9bd78
Merge pull request #5886 from thematters/hotfix/schedule
zeckli May 13, 2026
63b356f
fix: keep article comments query under complexity limit (#5885)
mashbean May 13, 2026
156d52e
Keep article comments visible for watch placeholders (#5887)
mashbean May 13, 2026
31533a1
Fix Community Watch record URL (#5888)
mashbean May 13, 2026
3136749
fix: load viewer oss flags for community watch (#5889)
mashbean May 13, 2026
36280e7
feat: expose fediverse setting in draft editor (#5890)
mashbean May 14, 2026
f178e65
Add community watch admin toggle and badge (#5891)
mashbean May 14, 2026
a5646f4
Use torch community watch badge (#5892)
mashbean May 14, 2026
1fdbbe9
Add Community Watch record toast action (#5893)
mashbean May 14, 2026
c46c624
Fix viewer oss root query gate (#5894)
mashbean May 15, 2026
eb60783
Document E2E release evaluation (#5895)
mashbean May 15, 2026
527e0d4
Tag E2E release profiles (#5896)
mashbean May 15, 2026
6e8456e
Fix Community Watch viewer flag query (#5898)
mashbean May 15, 2026
01a006a
Skip viewer OSS query for visitors (#5899)
mashbean May 15, 2026
1d1fe62
Isolate Community Watch feature flag query (#5900)
mashbean May 15, 2026
1dfea1c
Add admin Community Watch restore button (#5902)
mashbean May 16, 2026
948e76f
Merge branch 'master' into develop
mashbean May 17, 2026
2c4ae23
Release Community Watch web to production (#5901)
mashbean May 17, 2026
37d7bbc
Fix logged-in viewer feature flag crash (#5903)
mashbean May 17, 2026
87bef31
Harden release auth boundaries (#5904)
mashbean May 17, 2026
4936b99
Restore Fediverse controls via public features (#5905)
mashbean May 17, 2026
98ea272
Hide Fediverse setting until eligibility loads (#5906)
mashbean May 17, 2026
4730031
Sync Fediverse UI gate to develop (#5907)
mashbean May 18, 2026
86ebd7e
fix(admin): gate community watch restore action (#5908)
mashbean May 18, 2026
2a701f7
Fix develop viewer auth boundary (#5910)
mashbean May 18, 2026
8b10e58
fix(comment): return community watch appeal state (#5911)
mashbean May 18, 2026
0dc60ba
feat(circle-sunset): disable the circle's subscribe and invite button
zeckli May 18, 2026
a2df111
Merge pull request #5913 from thematters/feat/circle-sunset
zeckli May 19, 2026
0a11b31
chore(version): bump the version
zeckli May 19, 2026
4d936e2
Merge pull request #5915 from thematters/release/v6.9.0
zeckli May 19, 2026
e31f8fb
Resolve release PR 5914 conflicts (#5916)
mashbean May 19, 2026
8186226
Merge branch 'master' into rebase/v6.9.0
zeckli May 19, 2026
12cf492
Merge pull request #5917 from thematters/rebase/v6.9.0
zeckli May 19, 2026
d9a62cf
Merge pull request #5914 from thematters/develop
zeckli May 19, 2026
6ef83c7
ci(test): do ci testing
zeckli May 21, 2026
a109da9
Merge pull request #5918 from thematters/feat/ci
zeckli May 21, 2026
9c01f83
ci(test): do ci test
zeckli May 21, 2026
18be722
Merge pull request #5919 from thematters/feat/ci
zeckli May 21, 2026
d471490
feat(circle-sunset): close routes of circle page and management
zeckli May 21, 2026
c8a6caf
feat(notice): remove the circle notice setup page
zeckli May 25, 2026
814c776
feat(circle-sunset): remove the circle entry on the profile page
zeckli May 26, 2026
a347594
feat(nav): remove the nav item redirects to user's own circle
zeckli May 26, 2026
882bdf6
Merge pull request #5920 from thematters/feat/circle-sunset
zeckli May 27, 2026
1cff1f8
chore(bump): bump the version
zeckli May 27, 2026
ed1108c
feat(circle): remove the circle widget on the profile page
zeckli May 27, 2026
39e6eb3
Merge pull request #5922 from thematters/feat/circle
zeckli May 27, 2026
d9c3a5f
Merge branch 'develop' into chore/v6.10.0
zeckli May 27, 2026
1b95b90
Merge pull request #5923 from thematters/chore/v6.10.0
zeckli May 27, 2026
70b9f4b
feat(copy): change the circle wall's copies
zeckli May 27, 2026
ce9222b
Merge pull request #5925 from thematters/feat/copy
zeckli May 27, 2026
c1cf6ae
feat(card): remove the circle name from article card component
zeckli May 27, 2026
855308e
feat(copy): update the circle related copies
zeckli May 27, 2026
43e5d30
feat(card): update the test case of article card
zeckli May 27, 2026
04b8e1f
Merge pull request #5926 from thematters/feat/card
zeckli May 27, 2026
6466ca0
Merge branch 'master' into rebase/v6.10.0
zeckli May 27, 2026
24ed391
Merge pull request #5927 from thematters/rebase/v6.10.0
zeckli May 27, 2026
735e527
ci(cache): fix for the deployment zip size too big
zeckli May 27, 2026
784cd1a
chore(rebase): bump the version
zeckli May 27, 2026
caf015f
Merge pull request #5928 from thematters/ci/cache
zeckli May 27, 2026
320fad4
Merge branch 'develop' into chore/v6.10.1
zeckli May 27, 2026
05afe13
Merge pull request #5929 from thematters/chore/v6.10.1
zeckli May 27, 2026
0a1793f
feat: add personhood PWA feasibility gate (#5931)
mashbean May 28, 2026
b9a35fa
feat: bind personhood mobile flow to verifier challenge (#5932)
mashbean May 28, 2026
3fb0f53
Add personhood proof helper handoff
mashbean May 28, 2026
4eaa901
Fix personhood helper message ids
mashbean May 28, 2026
9241738
Merge pull request #5933 from thematters/codex/personhood-helper-hand…
mashbean May 28, 2026
4acdd20
Display carbon based badge
mashbean May 28, 2026
158e7db
Merge pull request #5934 from thematters/codex/carbon-based-badge-web…
mashbean May 28, 2026
fd6248b
Use DNA mark for carbon based badge
mashbean May 28, 2026
ff9b8cc
Merge pull request #5935 from thematters/codex/carbon-based-dna-badge…
mashbean May 28, 2026
84aef88
Bind personhood helper handoff to viewer
mashbean May 28, 2026
44c784a
Merge pull request #5936 from thematters/codex/personhood-handoff-token
mashbean May 28, 2026
9564689
Update carbon based badge icon
mashbean May 29, 2026
9410888
Merge pull request #5937 from thematters/codex/carbon-based-badge-ribbon
mashbean May 29, 2026
53340f1
Add develop personhood env workflow
mashbean May 29, 2026
5092cf3
Merge pull request #5938 from thematters/codex/personhood-develop-env…
mashbean May 29, 2026
b01780f
Restore TW FidO session after app return
mashbean May 29, 2026
e729fe7
Merge pull request #5939 from thematters/codex/personhood-twfido-sess…
mashbean May 29, 2026
8999528
Restore TW FidO tickets across Safari tabs
mashbean May 29, 2026
10d6ed5
Merge pull request #5940 from thematters/codex/personhood-twfido-cros…
mashbean May 29, 2026
39e2cba
feat(personhood): add browser proof handoff page
mashbean May 29, 2026
45dac02
fix(personhood): always isolate proof routes
mashbean May 29, 2026
7fd274a
fix(personhood): remove page-level COEP headers
mashbean May 29, 2026
d130321
fix(personhood): clarify proof handoff readiness
mashbean May 29, 2026
239997a
feat(personhood): add isolated prover shell
mashbean May 29, 2026
e9b6e32
Merge pull request #5945 from thematters/codex/personhood-isolated-pr…
mashbean May 29, 2026
5b3352e
feat(personhood): mount zkid input preflight worker
mashbean May 29, 2026
2cd05e9
Merge pull request #5946 from thematters/codex/personhood-browser-pro…
mashbean May 29, 2026
360796b
feat(personhood): run browser proving pipeline
mashbean May 29, 2026
0936edc
Merge pull request #5947 from thematters/codex/personhood-full-browse…
mashbean May 29, 2026
f1cb6b6
fix(personhood): lower iOS proving memory
mashbean May 30, 2026
7db8b0e
Merge pull request #5948 from thematters/codex/personhood-ios-memory-…
mashbean May 30, 2026
e840e61
fix(personhood): guard iOS prover crashes
mashbean May 30, 2026
b6dcc44
Merge pull request #5949 from thematters/codex/personhood-ios-crash-g…
mashbean May 30, 2026
1d5ff7f
feat(personhood): add desktop prover handoff link
mashbean May 30, 2026
5108aff
Merge pull request #5950 from thematters/codex/personhood-desktop-han…
mashbean May 30, 2026
e90574a
fix(personhood): open TW FidO from button click
mashbean May 30, 2026
74913dd
Merge pull request #5951 from thematters/codex/personhood-twfido-open…
mashbean May 30, 2026
6e364c1
fix(personhood): expose TW FidO upstream errors
mashbean May 30, 2026
f7f9bed
Merge pull request #5952 from thematters/codex/personhood-ticket-erro…
mashbean May 30, 2026
2ff37f1
feat(moment-feed): add the support of the moment feed
zeckli Jun 1, 2026
d7276d7
feat(moment-feed): add the support of the moment feed
zeckli Jun 1, 2026
fb6d72e
Merge branch 'develop' into feat/moment-feed
zeckli Jun 2, 2026
32fcd9e
chore(conflict): resolve conflicts
zeckli Jun 2, 2026
b4ca53a
Merge pull request #5954 from thematters/feat/moment-feed
zeckli Jun 2, 2026
37649b9
feat(notice): update the style and copy of the deactivated users' com…
zeckli Jun 3, 2026
92e255e
feat(copy): update the copies of the moment feed
zeckli Jun 4, 2026
d563be4
Merge pull request #5956 from thematters/feat/notice
zeckli Jun 4, 2026
bdd5f0d
feat(copy): update the deactivated user's comment notice copies
zeckli Jun 4, 2026
1f3cefd
Merge pull request #5957 from thematters/feat/copy
zeckli Jun 4, 2026
156d8db
chore(bump): bump the version
zeckli Jun 4, 2026
1100b08
Merge pull request #5958 from thematters/chore/bump
zeckli Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .cursor/rules/testing-approach.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,17 @@ Matters Web uses a combination of unit, component, and end-to-end (E2E) tests.
- `npm run test:e2e`: Run end-to-end tests
- `npm run test:unit:coverage`: Generate coverage report

## Release Evaluation Boundary

Use the shared release evaluation standard when testing feature launches:

- Preview and PR checks should use the Vercel preview URL through `PLAYWRIGHT_TEST_BASE_URL`.
- `matters.icu` is the staging acceptance target and may use disposable test data.
- `matters.town` production checks are read-only by default; production mutations, admin actions, payment actions, moderation changes, or outbound delivery require explicit human approval.
- Keep CI status, staging acceptance, production deployment, and production smoke-test results separate.

See [docs/e2e-release-evaluation.md](mdc:docs/e2e-release-evaluation.md) for the repo-local guide.

## Testing Utilities

- Mock data and fixtures for testing
Expand Down
11 changes: 6 additions & 5 deletions .env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,23 @@ NEXT_PUBLIC_OAUTH_URL=https://server.matters.icu/oauth
NEXT_PUBLIC_SEGMENT_KEY=3gE20MjzN9qncFqlKV0pDvNO7Cp2gWU3
NEXT_PUBLIC_FB_APP_ID=823885921293850
NEXT_PUBLIC_WALLETCONNECT_ID=e7fc7d3ee120ec6611ea433a5bbb6613
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=5eed3e45bb994886b10e23fba64b160b
NEXT_PUBLIC_SENTRY_PROJECT_ID=6105556
NEXT_PUBLIC_SENTRY_DOMAIN=o1089931.ingest.us.sentry.io
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=5c35ff1ac0c7d9d8513ebbbb540c5dee
NEXT_PUBLIC_SENTRY_PROJECT_ID=4510956654100480
NEXT_PUBLIC_SENTRY_DOMAIN=o4507972688478208.ingest.us.sentry.io
NEXT_PUBLIC_FIREBASE_CONFIG=eyJhcGlLZXkiOiJBSXphU3lESnR4N0hZOVIxbFdNX3J0SXRwRV9jM090c3VlYVhJa28iLCJhdXRoRG9tYWluIjoibWF0dGVycy1pY3UuZmlyZWJhc2VhcHAuY29tIiwicHJvamVjdElkIjoibWF0dGVycy1pY3UiLCJzdG9yYWdlQnVja2V0IjoibWF0dGVycy1pY3UuZmlyZWJhc2VzdG9yYWdlLmFwcCIsIm1lc3NhZ2luZ1NlbmRlcklkIjoiMTI5MDg3ODY3MjgyIiwiYXBwSWQiOiIxOjEyOTA4Nzg2NzI4Mjp3ZWI6NTc3MGI1YzY5YjFiYTdjYzNjMTk0YiIsIm1lYXN1cmVtZW50SWQiOiJHLTY2VkpQRTlHMlAifQ==
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_test_51GrOGRCE0HD6LY9Uo7rK3pSmiIG4KTjWO1rOrJavFFJob3zQlSjZg6uavIhcGbp8o1wZGcEuph2MgUfHhsB48vx000z2S0FiUx
NEXT_PUBLIC_TRAVELOGGERS_URL=https://nft-develop.matters.town
NEXT_PUBLIC_LOGBOOKS_URL=https://logbooks-vercel.matters.town
NEXT_PUBLIC_ALCHEMY_KEY=1dMo8xjAFo8M6Y4sQ45WTD3Zie2-MA4C
NEXT_PUBLIC_ALCHEMY_KEY=Cl3ezSQsRJ0EpAj8ar1WM
NEXT_PUBLIC_GOOGLE_CLIENT_ID=315393900359-2r9fundftis7dc0tdeo2hf8630nfdd8h.apps.googleusercontent.com
NEXT_PUBLIC_TWITTER_CLIENT_ID=X3d6Szg5bnVCMm5wRWxSVmhXUTc6MTpjaQ
NEXT_PUBLIC_THREADS_CLIENT_ID=1547288284064903
NEXT_PUBLIC_CF_TURNSTILE_SITE_KEY=0x4AAAAAAAKiedvR5qiLUhIs
NEXT_PUBLIC_NOMAD_MATTERS_CAMPAIGN_LINK=/@rsdyobw/22048-launching-the-nomad-matters-initiative
NEXT_PUBLIC_CAMPAIGN_APPLICATION_LINK=https://docs.google.com/forms/d/e/1FAIpQLSeQzWJ8g2fZk5a9DD-1P_Y4pyQCTE1cbTI6T8-5K8PQXAZ6pA/viewform?usp=dialog
NEXT_PUBLIC_BILLBOARD_OPERATOR_ADDRESS=0xBcEAD54De463C083F348b530305e2471652D59A3
NEXT_PUBLIC_BILLBOARD_REGISTRY_ADDRESS=0xEb23327533aa993069D61b8E1d6001B1cce0E216
NEXT_PUBLIC_BILLBOARD_TOKEN_ID=1
NEXT_PUBLIC_BILLBOARD_IMAGE_URL=matters-billboard-ad-dev.s3.ap-southeast-1.amazonaws.com/
SENTRY_ORG=matters-lab
SENTRY_ORG=firefly-uz
SENTRY_PROJECT=matters-web-develop
10 changes: 5 additions & 5 deletions .env.local.example
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,20 @@ NEXT_PUBLIC_OAUTH_URL=https://server.matters.icu/oauth
NEXT_PUBLIC_SEGMENT_KEY=3gE20MjzN9qncFqlKV0pDvNO7Cp2gWU3
NEXT_PUBLIC_FB_APP_ID=823885921293850
NEXT_PUBLIC_WALLETCONNECT_ID=e7fc7d3ee120ec6611ea433a5bbb6613
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=5eed3e45bb994886b10e23fba64b160b
NEXT_PUBLIC_SENTRY_PROJECT_ID=6105556
NEXT_PUBLIC_SENTRY_DOMAIN=o1089931.ingest.us.sentry.io
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=5c35ff1ac0c7d9d8513ebbbb540c5dee
NEXT_PUBLIC_SENTRY_PROJECT_ID=4510956654100480
NEXT_PUBLIC_SENTRY_DOMAIN=o4507972688478208.ingest.us.sentry.io
NEXT_PUBLIC_FIREBASE_CONFIG=eyJhcGlLZXkiOiJBSXphU3lESnR4N0hZOVIxbFdNX3J0SXRwRV9jM090c3VlYVhJa28iLCJhdXRoRG9tYWluIjoibWF0dGVycy1pY3UuZmlyZWJhc2VhcHAuY29tIiwicHJvamVjdElkIjoibWF0dGVycy1pY3UiLCJzdG9yYWdlQnVja2V0IjoibWF0dGVycy1pY3UuZmlyZWJhc2VzdG9yYWdlLmFwcCIsIm1lc3NhZ2luZ1NlbmRlcklkIjoiMTI5MDg3ODY3MjgyIiwiYXBwSWQiOiIxOjEyOTA4Nzg2NzI4Mjp3ZWI6NTc3MGI1YzY5YjFiYTdjYzNjMTk0YiIsIm1lYXN1cmVtZW50SWQiOiJHLTY2VkpQRTlHMlAifQ==
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_test_51GrOGRCE0HD6LY9Uo7rK3pSmiIG4KTjWO1rOrJavFFJob3zQlSjZg6uavIhcGbp8o1wZGcEuph2MgUfHhsB48vx000z2S0FiUx
NEXT_PUBLIC_TRAVELOGGERS_URL=https://nft-develop.matters.town
NEXT_PUBLIC_LOGBOOKS_URL=https://logbooks-vercel.matters.town
NEXT_PUBLIC_ALCHEMY_KEY=1dMo8xjAFo8M6Y4sQ45WTD3Zie2-MA4C
NEXT_PUBLIC_ALCHEMY_KEY=Cl3ezSQsRJ0EpAj8ar1WM
NEXT_PUBLIC_NOMAD_MATTERS_CAMPAIGN_LINK=/@rsdyobw/22048-launching-the-nomad-matters-initiative
NEXT_PUBLIC_CAMPAIGN_APPLICATION_LINK=https://docs.google.com/forms/d/e/1FAIpQLSeQzWJ8g2fZk5a9DD-1P_Y4pyQCTE1cbTI6T8-5K8PQXAZ6pA/viewform?usp=dialog
NEXT_PUBLIC_BILLBOARD_ADDRESS=0x6a72820E1CCCba1B1FE02E37881cEa3F9Aa6375C
NEXT_PUBLIC_BILLBOARD_TOKEN_ID=6
NEXT_PUBLIC_BILLBOARD_IMAGE_URL=matters-billboard-ad-dev.s3.ap-southeast-1.amazonaws.com/
SENTRY_ORG=matters-lab
SENTRY_ORG=firefly-uz
SENTRY_PROJECT=matters-web-develop
PLAYWRIGHT_RUNTIME_ENV=local
PLAYWRIGHT_TEST_BASE_URL=https://matters.icu
Expand Down
11 changes: 6 additions & 5 deletions .env.prod
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,24 @@ NEXT_PUBLIC_OAUTH_URL=https://server.matters.town/oauth
NEXT_PUBLIC_SEGMENT_KEY=Yk2ao5JvhOCyvCh9SCVBT1iTN4kfTpy7
NEXT_PUBLIC_FB_APP_ID=1415638158583454
NEXT_PUBLIC_WALLETCONNECT_ID=e7fc7d3ee120ec6611ea433a5bbb6613
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=5af839b6d42044548d8ec70f00af8c10
NEXT_PUBLIC_SENTRY_PROJECT_ID=6153512
NEXT_PUBLIC_SENTRY_DOMAIN=o1089931.ingest.us.sentry.io
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=6ba18c87f395dd836e1c479f2c9004f2
NEXT_PUBLIC_SENTRY_PROJECT_ID=4510956671467520
NEXT_PUBLIC_SENTRY_DOMAIN=o4507972688478208.ingest.us.sentry.io
NEXT_PUBLIC_FIREBASE_CONFIG=eyJhcGlLZXkiOiJBSXphU3lEajFCV2tNa2tpaXdYYkpOQUFtSFVWX3hjVGZrRnQxWGciLCJhdXRoRG9tYWluIjoibWF0dGVycy0yZGQ3OC5maXJlYmFzZWFwcC5jb20iLCJkYXRhYmFzZVVSTCI6Imh0dHBzOi8vbWF0dGVycy0yZGQ3OC5maXJlYmFzZWlvLmNvbSIsInByb2plY3RJZCI6Im1hdHRlcnMtMmRkNzgiLCJzdG9yYWdlQnVja2V0IjoibWF0dGVycy0yZGQ3OC5hcHBzcG90LmNvbSIsIm1lc3NhZ2luZ1NlbmRlcklkIjoiNzE3MTM1MDcyNTcwIiwiYXBwSWQiOiIxOjcxNzEzNTA3MjU3MDp3ZWI6ODJjNWYwNjk0MmMwMjBkYThkZDQwMyIsIm1lYXN1cmVtZW50SWQiOiJHLU05VDM2MTRRSzEifQ
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_live_NfdCmUIPzQxKEMjLkInsjULK00W7AXBBrG
NEXT_PUBLIC_TRAVELOGGERS_URL=https://traveloggers.matters.town
NEXT_PUBLIC_LOGBOOKS_URL=https://logbook.matters.town
NEXT_PUBLIC_ALCHEMY_KEY=bOu-fCphi9mvePsxg968Qe-pidHQNdlT
NEXT_PUBLIC_ALCHEMY_KEY=Co-LZNZhG6kpgtIKsXGY7
NEXT_PUBLIC_CF_TURNSTILE_SITE_KEY=0x4AAAAAAAKVODkJMwfIxG78
NEXT_PUBLIC_GOOGLE_CLIENT_ID=751677068109-rkml7q9ujf8ems09cclh7qckf14svcgs.apps.googleusercontent.com
NEXT_PUBLIC_TWITTER_CLIENT_ID=cmdKbUlyd1ZZZDZYa3dTampidGo6MTpjaQ
NEXT_PUBLIC_THREADS_CLIENT_ID=
NEXT_PUBLIC_NOMAD_MATTERS_CAMPAIGN_LINK_EN=/@hi176/476405-a-guide-to-invite
NEXT_PUBLIC_NOMAD_MATTERS_CAMPAIGN_LINK=/@hi176/476404
NEXT_PUBLIC_CAMPAIGN_APPLICATION_LINK=https://docs.google.com/forms/d/e/1FAIpQLSeQzWJ8g2fZk5a9DD-1P_Y4pyQCTE1cbTI6T8-5K8PQXAZ6pA/viewform?usp=dialog
NEXT_PUBLIC_BILLBOARD_OPERATOR_ADDRESS=0x92a117aeA74963Cd0CEdF9C50f99435451a291F7
NEXT_PUBLIC_BILLBOARD_REGISTRY_ADDRESS=0x95bEFe8E08a56dCEBBa8d40BE3e9c3cb2fF81806
NEXT_PUBLIC_BILLBOARD_TOKEN_ID=1
NEXT_PUBLIC_BILLBOARD_IMAGE_URL=matters-billboard-ad.s3.ap-southeast-1.amazonaws.com/
SENTRY_ORG=matters-lab
SENTRY_ORG=firefly-uz
SENTRY_PROJECT=matters-web-prod
11 changes: 6 additions & 5 deletions .env.prod-next
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,18 @@ NEXT_PUBLIC_OAUTH_URL=https://server.matters.town/oauth
NEXT_PUBLIC_SEGMENT_KEY=Yk2ao5JvhOCyvCh9SCVBT1iTN4kfTpy7
NEXT_PUBLIC_FB_APP_ID=1415638158583454
NEXT_PUBLIC_WALLETCONNECT_ID=e7fc7d3ee120ec6611ea433a5bbb6613
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=5af839b6d42044548d8ec70f00af8c10
NEXT_PUBLIC_SENTRY_PROJECT_ID=6153512
NEXT_PUBLIC_SENTRY_DOMAIN=o1089931.ingest.us.sentry.io
NEXT_PUBLIC_SENTRY_PUBLIC_KEY=6ba18c87f395dd836e1c479f2c9004f2
NEXT_PUBLIC_SENTRY_PROJECT_ID=4510956671467520
NEXT_PUBLIC_SENTRY_DOMAIN=o4507972688478208.ingest.us.sentry.io
NEXT_PUBLIC_FIREBASE_CONFIG=eyJhcGlLZXkiOiJBSXphU3lEajFCV2tNa2tpaXdYYkpOQUFtSFVWX3hjVGZrRnQxWGciLCJhdXRoRG9tYWluIjoibWF0dGVycy0yZGQ3OC5maXJlYmFzZWFwcC5jb20iLCJkYXRhYmFzZVVSTCI6Imh0dHBzOi8vbWF0dGVycy0yZGQ3OC5maXJlYmFzZWlvLmNvbSIsInByb2plY3RJZCI6Im1hdHRlcnMtMmRkNzgiLCJzdG9yYWdlQnVja2V0IjoibWF0dGVycy0yZGQ3OC5hcHBzcG90LmNvbSIsIm1lc3NhZ2luZ1NlbmRlcklkIjoiNzE3MTM1MDcyNTcwIiwiYXBwSWQiOiIxOjcxNzEzNTA3MjU3MDp3ZWI6ODJjNWYwNjk0MmMwMjBkYThkZDQwMyIsIm1lYXN1cmVtZW50SWQiOiJHLU05VDM2MTRRSzEifQ
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_live_NfdCmUIPzQxKEMjLkInsjULK00W7AXBBrG
NEXT_PUBLIC_TRAVELOGGERS_URL=https://traveloggers.matters.town
NEXT_PUBLIC_LOGBOOKS_URL=https://logbook.matters.town
NEXT_PUBLIC_ALCHEMY_KEY=bOu-fCphi9mvePsxg968Qe-pidHQNdlT
NEXT_PUBLIC_ALCHEMY_KEY=Co-LZNZhG6kpgtIKsXGY7
NEXT_PUBLIC_CF_TURNSTILE_SITE_KEY=0x4AAAAAAAKVODkJMwfIxG78
NEXT_PUBLIC_GOOGLE_CLIENT_ID=751677068109-rkml7q9ujf8ems09cclh7qckf14svcgs.apps.googleusercontent.com
NEXT_PUBLIC_TWITTER_CLIENT_ID=cmdKbUlyd1ZZZDZYa3dTampidGo6MTpjaQ
NEXT_PUBLIC_THREADS_CLIENT_ID=
NEXT_PUBLIC_NOMAD_MATTERS_CAMPAIGN_LINK_EN=/@hi176/476405-a-guide-to-invite
NEXT_PUBLIC_NOMAD_MATTERS_CAMPAIGN_LINK=/@hi176/476404
NEXT_PUBLIC_CAMPAIGN_APPLICATION_LINK=https://docs.google.com/forms/d/e/1FAIpQLSeQzWJ8g2fZk5a9DD-1P_Y4pyQCTE1cbTI6T8-5K8PQXAZ6pA/viewform?usp=dialog
Expand All @@ -40,5 +41,5 @@ NEXT_PUBLIC_BILLBOARD_IMAGE_URL=matters-billboard-ad.s3.ap-southeast-1.amazonaws
NEXT_PUBLIC_SITE_DOMAIN=web-next.matters.town
NEXT_PUBLIC_ADMIN_VIEW=true

SENTRY_ORG=matters-lab
SENTRY_ORG=firefly-uz
SENTRY_PROJECT=matters-web-prod
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_V2 }}

jobs:
build_and_deploy:
Expand Down Expand Up @@ -118,7 +118,7 @@ jobs:
- name: Generate deployment package
if: github.base_ref == 'develop' || github.base_ref == 'master' || github.base_ref == 'main' || github.base_ref == 'release/next'
run: |
zip -r --symlinks deploy.zip . -x .git/\* node_modules/\*
zip -r --symlinks deploy.zip . -x .git/\* node_modules/\* .next/cache/\*

- name: Upload Assets (develop - R2)
if: github.base_ref == 'develop'
Expand Down
93 changes: 93 additions & 0 deletions .github/workflows/set-develop-personhood-env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Set Develop Personhood Env

on:
workflow_dispatch:
inputs:
enabled:
description: 'Enable TW FidO personhood routes on matters.icu'
required: true
default: 'true'
type: choice
options:
- 'true'
- 'false'
return_proof_input:
description: 'Return verifier proof input to the mobile helper'
required: true
default: 'true'
type: choice
options:
- 'true'
- 'false'
verifier_url:
description: 'zkID verifier base URL for matters.icu'
required: true
type: string

concurrency:
group: set-develop-personhood-env
cancel-in-progress: false

jobs:
set-develop-env:
name: Set matters.icu develop personhood env
runs-on: ubuntu-latest
environment: develop
permissions:
contents: read
steps:
- name: Validate input
run: |
case "${{ inputs.enabled }}" in
true|false) ;;
*) echo "Unsupported enabled value: ${{ inputs.enabled }}" >&2; exit 1 ;;
esac

case "${{ inputs.return_proof_input }}" in
true|false) ;;
*) echo "Unsupported return_proof_input value: ${{ inputs.return_proof_input }}" >&2; exit 1 ;;
esac

node -e "const url = new URL(process.argv[1]); if (url.protocol !== 'https:') throw new Error('verifier_url must be https')" "${{ inputs.verifier_url }}"

if [ -z "${{ secrets.PERSONHOOD_FIDO_SP_SERVICE_ID }}" ]; then
echo "Missing PERSONHOOD_FIDO_SP_SERVICE_ID environment secret" >&2
exit 1
fi

if [ -z "${{ secrets.PERSONHOOD_FIDO_AES_KEY_BASE64 }}" ]; then
echo "Missing PERSONHOOD_FIDO_AES_KEY_BASE64 environment secret" >&2
exit 1
fi

- name: Setup AWS
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION_DEV }}

- name: Update develop Elastic Beanstalk environment
run: |
aws elasticbeanstalk update-environment \
--environment-name "${{ secrets.AWS_EB_ENV_NAME_DEV }}" \
--option-settings \
Namespace=aws:elasticbeanstalk:application:environment,OptionName=PERSONHOOD_TW_FIDO_ENABLED,Value="${{ inputs.enabled }}" \
Namespace=aws:elasticbeanstalk:application:environment,OptionName=PERSONHOOD_TW_FIDO_RETURN_PROOF_INPUT,Value="${{ inputs.return_proof_input }}" \
Namespace=aws:elasticbeanstalk:application:environment,OptionName=PERSONHOOD_FIDO_SP_SERVICE_ID,Value="${{ secrets.PERSONHOOD_FIDO_SP_SERVICE_ID }}" \
Namespace=aws:elasticbeanstalk:application:environment,OptionName=PERSONHOOD_FIDO_AES_KEY_BASE64,Value="${{ secrets.PERSONHOOD_FIDO_AES_KEY_BASE64 }}" \
Namespace=aws:elasticbeanstalk:application:environment,OptionName=PERSONHOOD_VERIFIER_URL,Value="${{ inputs.verifier_url }}" \
>/tmp/update-environment.json

- name: Wait for develop environment
run: |
aws elasticbeanstalk wait environment-updated \
--environment-names "${{ secrets.AWS_EB_ENV_NAME_DEV }}"

- name: Verify develop setting
run: |
aws elasticbeanstalk describe-configuration-settings \
--application-name matters-stage \
--environment-name "${{ secrets.AWS_EB_ENV_NAME_DEV }}" \
--query "ConfigurationSettings[0].OptionSettings[?Namespace=='aws:elasticbeanstalk:application:environment' && contains(['PERSONHOOD_TW_FIDO_ENABLED','PERSONHOOD_TW_FIDO_RETURN_PROOF_INPUT','PERSONHOOD_FIDO_SP_SERVICE_ID','PERSONHOOD_VERIFIER_URL'], OptionName)].{OptionName:OptionName,Value:Value}" \
--output table
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@

## Testing

See [Playwright Testing Guide](https://www.notion.so/matterslab/Playwright-Testing-Guide-60caa248d5ce4d70938b7b2f2c7e9139).
See [E2E Release Evaluation](docs/e2e-release-evaluation.md) for the repo-local Playwright and release-gate guide.

The older Notion guide is still useful for background context: [Playwright Testing Guide](https://www.notion.so/matterslab/Playwright-Testing-Guide-60caa248d5ce4d70938b7b2f2c7e9139).

## Conventions

Expand Down
18 changes: 18 additions & 0 deletions configs/csp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,21 @@ export const SENTRY_CSP_REPORT_GROUP = 'csp-endpoint'

const DEFAULT_SRC = ["'self'", process.env.NEXT_PUBLIC_NEXT_ASSET_DOMAIN]

const getCspHost = (url?: string) => {
if (!url) {
return undefined
}

try {
return new URL(url).hostname
} catch {
return url
}
}

const SCRIPT_SRC = [
"'self'",
"'wasm-unsafe-eval'",

// Next.js Assets
process.env.NEXT_PUBLIC_NEXT_ASSET_DOMAIN,
Expand Down Expand Up @@ -121,6 +134,8 @@ const CONNECT_SRC = [

// Next.js Assets
process.env.NEXT_PUBLIC_NEXT_ASSET_DOMAIN,
getCspHost(process.env.NEXT_PUBLIC_PERSONHOOD_ASSET_URL),
getCspHost(process.env.NEXT_PUBLIC_PERSONHOOD_VERIFIER_URL),

// API
process.env.NEXT_PUBLIC_API_URL,
Expand Down Expand Up @@ -213,6 +228,8 @@ const PREFETCH_SRC = [
process.env.NEXT_PUBLIC_NEXT_ASSET_DOMAIN,
]

const WORKER_SRC = ["'self'", 'blob:']

export const CSP_POLICY = Object.entries({
'default-src': DEFAULT_SRC,
'script-src': SCRIPT_SRC,
Expand All @@ -223,6 +240,7 @@ export const CSP_POLICY = Object.entries({
'connect-src': CONNECT_SRC,
'frame-src': FRAME_SRC,
'prefetch-src': PREFETCH_SRC,
'worker-src': WORKER_SRC,
'report-uri': SENTRY_REPORT_URI,
'report-to': SENTRY_CSP_REPORT_GROUP,
})
Expand Down
Loading
Loading