Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
450 commits
Select commit Hold shift + click to select a range
deeb82f
feat: add health readiness probes
pntech20 May 23, 2026
c8722a0
feat(contract): implement token allowlist for streams (#292)
FaithOnuh May 26, 2026
88594f5
perf(contract): optimize storage layout for gas reduction (#272)
FaithOnuh May 26, 2026
2772ea1
feat(api): implement JWT authentication for API (#245)
FaithOnuh May 26, 2026
58d0090
feat(services): implement stream event indexer (#247)
FaithOnuh May 26, 2026
14d3904
feat: emergency pause, stream limit, upgrade timelock, env validation
unixfundz May 26, 2026
6ed18ae
Merge branch 'main' into feat/issues-266-270-271-283
Vera3289 May 26, 2026
8b9c48f
Merge pull request #349 from unixfundz/feat/issues-266-270-271-283
Vera3289 May 26, 2026
6372abd
Merge pull request #348 from FaithOnuh/feat/event-indexer-247
Vera3289 May 26, 2026
678392c
Merge pull request #345 from FaithOnuh/feat/token-allowlist-292
Vera3289 May 26, 2026
4824b52
Merge pull request #347 from FaithOnuh/feat/jwt-auth-245
Vera3289 May 26, 2026
ba11482
Merge pull request #346 from FaithOnuh/feat/storage-optimization-272
Vera3289 May 26, 2026
8ad406d
stream: include next_withdraw_time in cooldown error message (issue #…
AnnabelJoe May 27, 2026
03fa115
Merge branch 'main' into feat/health-readiness-probes
Vera3289 May 27, 2026
a50586d
Merge pull request #344 from pntech20/feat/health-readiness-probes
Vera3289 May 27, 2026
07e72f9
backend: add Redis-backed rate-limiting middleware and example API (i…
AnnabelJoe May 27, 2026
a761548
stream: add linear vesting support (create_vesting_stream, claimable)…
AnnabelJoe May 27, 2026
671c937
backend: add pg connection pool helper and env-configurable settings …
AnnabelJoe May 27, 2026
4617dd7
backend: add pg connection pool helper and app integration (issue #264)
AnnabelJoe May 27, 2026
8aad5c1
Merge pull request #353 from AnnabelJoe/issue-264-db-pooling
Vera3289 May 27, 2026
7c95aee
Merge branch 'main' into issue-274-vesting-schedule
Vera3289 May 27, 2026
1e7fc2a
Merge pull request #352 from AnnabelJoe/issue-274-vesting-schedule
Vera3289 May 27, 2026
9d24e37
docs: add mainnet launch checklist
Biodunhex-dev May 27, 2026
cf94180
feat(demo): show fiat equivalents for stream token amounts, persist p…
Dev-Odun-oss May 28, 2026
7a3e006
Add stream transfer and event schema documentation
devSoniia May 28, 2026
b589d21
feat: implement stream transfer for employee (#276)
devSoniia May 28, 2026
4f19c8a
docs: add contract event schema documentation (#281)
devSoniia May 28, 2026
9af97ae
feat: implement employer notification preferences (#261)
devSoniia May 28, 2026
e6d7ff8
feat: add input sanitization middleware (#254)
devSoniia May 28, 2026
a15a22c
feat: implement DELETE /users/:address off-chain deletion endpoint. C…
milah-247 May 28, 2026
bc3785f
chore: add Dependabot config for npm/cargo/actions with auto-merge (#…
PrincessnJoy May 29, 2026
bbf9103
feat: add Trivy container vulnerability scanning workflow (#306)
PrincessnJoy May 29, 2026
809b93e
feat: implement stream expiry auto-cancellation (#280)
PrincessnJoy May 29, 2026
8f950c8
feat: document and test reentrancy guard on withdraw (#269)
PrincessnJoy May 29, 2026
2a157e1
Merge pull request #360 from milah-247/feature/off-chain-data-deletio…
Vera3289 May 29, 2026
c3981da
issues
KayMuna May 29, 2026
aded821
fixed issue 249 258 267 305
Benalex8797 May 29, 2026
d4edf9f
feat(docker): add multi-stage build with WASM output stage (#297)
devisgood24 May 29, 2026
4f07f62
feat(api): add GET /tokens/:address metadata endpoint (#263)
devisgood24 May 29, 2026
7d9c5cb
feat(api): add Redis cache layer for get_stream calls (#251)
devisgood24 May 29, 2026
b28fbbf
feat(contract): enforce 10-year max stream duration (#277)
devisgood24 May 29, 2026
41cb1e9
feat: implement wallet connection button and modal for Freighter
johnsaviour56-ship-it May 29, 2026
9fb6c7f
feat: implement comprehensive employer stream creation form with full…
johnsaviour56-ship-it May 29, 2026
34d3b8b
audit
Iamkhanis May 29, 2026
892188f
feat: implement live-updating claimable balance counter
johnsaviour56-ship-it May 29, 2026
61cbfc3
fixed issue 228 253 319 325
Benalex8797 May 29, 2026
431932e
feat: add live-updating employee balance ticker
johnsaviour56-ship-it May 29, 2026
54e858a
Resolve staging, secrets, tracing, and graceful shutdown issues (#259…
devnWisdom May 29, 2026
70b2b73
add
Iamkhanis May 29, 2026
234e4e2
feat: TTL management, lifecycle tests, multi-network, blue-green deploy
Realericky May 29, 2026
f03b2f4
feat: implement frontend issues #225, #230, #239, #240
GoodnessJohn May 29, 2026
80b54b4
fixed issue 238 250 312 321
Benalex8797 May 29, 2026
1d4500b
Merge pull request #381 from Dev-Ben-Theo/feat/implement
Vera3289 May 29, 2026
8c3901e
Merge branch 'main' into feat/frontend-issues-225-230-239-240
Vera3289 May 29, 2026
875648e
Merge pull request #380 from GoodnessJohn/feat/frontend-issues-225-23…
Vera3289 May 29, 2026
875b2fc
Merge pull request #377 from devnWisdom/feature/staging-secrets-traci…
Vera3289 May 29, 2026
c7d75f3
Merge pull request #379 from Realericky/feat/issues-260-289-290-301
Vera3289 May 29, 2026
37b129f
Merge branch 'main' into feat/7787
Vera3289 May 29, 2026
eb33362
Merge pull request #378 from Iamkhanis/feat/7787
Vera3289 May 29, 2026
5f5fcef
feat: resolve issues #233 #234 #235 #236 — CSV export, error boundari…
Idaonoli May 29, 2026
8016d00
docs: add error code reference and update API documentation and FAQ
AdeMi20 May 30, 2026
d276793
Merge pull request #383 from AdeMi20/troubleshooting-guide
Vera3289 May 30, 2026
f89d07b
Merge pull request #382 from Idaonoli/feat/frontend-issues-233-236
Vera3289 May 30, 2026
6304f8a
Merge branch 'main' into feat/employee-balance-ticker
Vera3289 May 30, 2026
d3cb881
Merge pull request #376 from johnsaviour56-ship-it/feat/employee-bala…
Vera3289 May 30, 2026
30ca4ea
Merge branch 'main' into feat/pay
Vera3289 May 30, 2026
73599fc
Merge pull request #375 from Benalex8797/feat/pay
Vera3289 May 30, 2026
db8a9d9
Merge branch 'main' into feat/live-claimable-counter
Vera3289 May 30, 2026
6fbe0ed
Merge pull request #374 from johnsaviour56-ship-it/feat/live-claimabl…
Vera3289 May 30, 2026
98a345f
Merge branch 'main' into feature/277-max-stream-duration
Vera3289 May 30, 2026
e096da5
Merge pull request #370 from devisgood24/feature/277-max-stream-duration
Vera3289 May 30, 2026
af413fa
Merge pull request #369 from devisgood24/feature/251-stream-cache-layer
Vera3289 May 30, 2026
862d427
Merge pull request #368 from devisgood24/feature/263-token-metadata-api
Vera3289 May 30, 2026
527276f
Merge pull request #367 from devisgood24/feature/297-docker-multistag…
Vera3289 May 30, 2026
0b03bd7
Merge branch 'main' into feat/user
Vera3289 May 30, 2026
4d52035
Merge pull request #366 from devmasalati/feat/user
Vera3289 May 30, 2026
a6e2675
Merge branch 'main' into feat/55565789
Vera3289 May 30, 2026
5c169f0
Merge pull request #365 from KayMuna/feat/55565789
Vera3289 May 30, 2026
f10cce0
Merge branch 'main' into feat/reentrancy-guard-269
Vera3289 May 30, 2026
8eebca8
Merge pull request #364 from PrincessnJoy/feat/reentrancy-guard-269
Vera3289 May 30, 2026
21d5fd0
Merge branch 'main' into feat/stream-expiry-280
Vera3289 May 30, 2026
7a7fdb5
Merge pull request #363 from PrincessnJoy/feat/stream-expiry-280
Vera3289 May 30, 2026
1c38074
Merge pull request #362 from PrincessnJoy/feat/trivy-scanning-306
Vera3289 May 30, 2026
131e41a
Merge pull request #361 from PrincessnJoy/feat/dependabot-config-304
Vera3289 May 30, 2026
8816a0e
chore(deps): bump soroban-sdk in the patch-updates group (#384)
dependabot[bot] May 30, 2026
0cdc04a
chore(deps): bump github/codeql-action from 3 to 4
dependabot[bot] May 30, 2026
fde4257
chore(deps): bump actions/cache from 4 to 5
dependabot[bot] May 30, 2026
4fbca6d
chore(deps): bump aquasecurity/trivy-action from 0.28.0 to 0.36.0
dependabot[bot] May 30, 2026
847a83f
chore(deps): bump softprops/action-gh-release from 2 to 3
dependabot[bot] May 30, 2026
6f76034
chore(deps): bump @stellar/stellar-sdk from 13.3.0 to 15.1.0 in /sdk
dependabot[bot] May 30, 2026
5f8c538
chore(deps): bump codecov/codecov-action from 4 to 6
dependabot[bot] May 30, 2026
2b814cb
chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /sdk
dependabot[bot] May 30, 2026
399b6f1
chore(deps): bump the patch-updates group with 4 updates (#387)
dependabot[bot] May 30, 2026
5ec3564
chore(deps-dev): bump @vitejs/plugin-react from 4.7.0 to 6.0.2 in /demo
dependabot[bot] May 30, 2026
a1adc85
chore(deps-dev): bump vite from 5.4.21 to 8.0.14 in /demo
dependabot[bot] May 30, 2026
1fae5c2
chore(deps): bump express from 4.22.2 to 5.2.1
dependabot[bot] May 30, 2026
929421e
chore(deps): bump ioredis from 5.3.2 to 5.11.0
dependabot[bot] May 30, 2026
3be75da
Merge branch 'main' into feat/input-sanitization-254
Vera3289 May 30, 2026
3c7e69f
Merge pull request #359 from devSoniia/feat/input-sanitization-254
Vera3289 May 30, 2026
c03befc
Merge branch 'main' into dependabot/npm_and_yarn/ioredis-5.11.0
Vera3289 May 30, 2026
09a303c
feat: pre-commit hooks, DR runbook, SBOM pipeline, cost monitoring
Haroldwonder May 30, 2026
e76ae34
Merge pull request #406 from Vera3289/dependabot/npm_and_yarn/ioredis…
Vera3289 May 30, 2026
b362cf4
Merge pull request #407 from Haroldwonder/feat/devops-improvements-31…
Vera3289 May 30, 2026
b655d0e
Merge branch 'main' into dependabot/npm_and_yarn/express-5.2.1
Vera3289 May 30, 2026
84f624a
Merge pull request #405 from Vera3289/dependabot/npm_and_yarn/express…
Vera3289 May 30, 2026
dcd4219
chore(deps): bump @aws-sdk/client-secrets-manager
dependabot[bot] May 30, 2026
7dadf76
chore(deps): bump express-rate-limit from 7.5.1 to 8.5.2
dependabot[bot] May 30, 2026
a127997
chore(deps): bump stellar-sdk from 11.3.0 to 13.3.0
dependabot[bot] May 30, 2026
7373b98
Merge pull request #404 from Vera3289/dependabot/npm_and_yarn/express…
Vera3289 May 30, 2026
7035d41
chore(deps-dev): bump eslint from 8.57.1 to 10.4.1
dependabot[bot] May 30, 2026
b241fe4
chore(deps-dev): bump supertest from 6.3.4 to 7.2.2
dependabot[bot] May 30, 2026
c5396b5
Merge pull request #403 from Vera3289/dependabot/npm_and_yarn/eslint-…
Vera3289 May 30, 2026
8b32421
Merge branch 'main' into dependabot/npm_and_yarn/supertest-7.2.2
Vera3289 May 30, 2026
a86b3c9
Merge pull request #402 from Vera3289/dependabot/npm_and_yarn/superte…
Vera3289 May 30, 2026
a93f72e
Merge branch 'main' into dependabot/npm_and_yarn/stellar-sdk-13.3.0
Vera3289 May 30, 2026
11348e1
Merge pull request #401 from Vera3289/dependabot/npm_and_yarn/stellar…
Vera3289 May 30, 2026
2c14e13
Merge branch 'main' into dependabot/npm_and_yarn/aws-sdk/client-secre…
Vera3289 May 30, 2026
3814243
Merge pull request #400 from Vera3289/dependabot/npm_and_yarn/aws-sdk…
Vera3289 May 30, 2026
dc8075f
Merge pull request #399 from Vera3289/dependabot/npm_and_yarn/demo/vi…
Vera3289 May 30, 2026
6ce76fc
Merge branch 'main' into dependabot/npm_and_yarn/demo/vitejs/plugin-r…
Vera3289 May 30, 2026
e5573d6
Merge pull request #398 from Vera3289/dependabot/npm_and_yarn/demo/vi…
Vera3289 May 30, 2026
517b6e6
chore(deps-dev): bump jest from 29.7.0 to 30.4.2
dependabot[bot] May 30, 2026
cbff133
Merge pull request #397 from Vera3289/dependabot/npm_and_yarn/jest-30…
Vera3289 May 30, 2026
e8392cf
chore(deps): bump dotenv from 16.6.1 to 17.4.2
dependabot[bot] May 30, 2026
2f84d61
chore(deps): bump react and @types/react in /demo
dependabot[bot] May 30, 2026
adda7b1
chore(deps): bump react-dom and @types/react-dom in /demo
dependabot[bot] May 30, 2026
de56782
chore(deps): bump helmet from 7.2.0 to 8.2.0
dependabot[bot] May 30, 2026
156ab1d
Merge pull request #396 from Vera3289/dependabot/npm_and_yarn/demo/mu…
Vera3289 May 30, 2026
a72d11a
Merge pull request #395 from Vera3289/dependabot/npm_and_yarn/sdk/typ…
Vera3289 May 30, 2026
f490b47
Merge branch 'main' into dependabot/npm_and_yarn/demo/multi-e2615a3a50
Vera3289 May 30, 2026
ce3ac43
Merge pull request #394 from Vera3289/dependabot/npm_and_yarn/demo/mu…
Vera3289 May 30, 2026
ad49ad4
Merge pull request #391 from Vera3289/dependabot/npm_and_yarn/sdk/ste…
Vera3289 May 30, 2026
d955ee9
Merge pull request #393 from Vera3289/dependabot/npm_and_yarn/helmet-…
Vera3289 May 30, 2026
d836efb
Merge pull request #392 from Vera3289/dependabot/github_actions/codec…
Vera3289 May 30, 2026
e1918e3
Merge pull request #390 from Vera3289/dependabot/npm_and_yarn/dotenv-…
Vera3289 May 30, 2026
56cc8e5
Merge pull request #389 from Vera3289/dependabot/github_actions/softp…
Vera3289 May 30, 2026
afdb5f4
Merge pull request #388 from Vera3289/dependabot/github_actions/aquas…
Vera3289 May 30, 2026
4211498
Merge pull request #386 from Vera3289/dependabot/github_actions/actio…
Vera3289 May 30, 2026
dd595ae
Merge pull request #385 from Vera3289/dependabot/github_actions/githu…
Vera3289 May 30, 2026
b801e5f
Merge branch 'main' into feat/employer-notifications-261
Vera3289 May 30, 2026
a7d9c83
Merge pull request #358 from devSoniia/feat/employer-notifications-261
Vera3289 May 30, 2026
e275dc4
Merge branch 'main' into feat/event-schema-docs-281
Vera3289 May 30, 2026
960eedc
Merge pull request #357 from devSoniia/feat/event-schema-docs-281
Vera3289 May 30, 2026
dcefbd9
Merge branch 'main' into feat/stream-transfer-276
Vera3289 May 30, 2026
8a9e6ca
Merge pull request #356 from devSoniia/feat/stream-transfer-276
Vera3289 May 30, 2026
6834abf
Merge branch 'main' into issue339-fiat-currency-display
Vera3289 May 30, 2026
b522f07
Merge pull request #355 from Dev-Odun-oss/issue339-fiat-currency-display
Vera3289 May 30, 2026
1944ff5
Merge pull request #354 from Biodunhex-dev/feat/mainnet-launch-checkl…
Vera3289 May 30, 2026
a8c6a1d
feat(ci): enforce coverage threshold via codecov.yml (#295)
pauljacobb May 31, 2026
96318e9
feat(contract): optimize create_streams_batch gas cost (#286)
pauljacobb May 31, 2026
6866b71
feat(tests): add invariant tests for stream contract (#291)
pauljacobb May 31, 2026
736859f
feat(api): add application performance monitoring (#300)
pauljacobb May 31, 2026
0a28c74
feat: automated testnet deployment CI/CD pipeline (#296)
Magada06 May 31, 2026
982813a
feat: add third-party security audit scope and report placeholder
Magada06 May 31, 2026
e0494ee
test: fuzz claimable calculation invariants (#279)
Magada06 May 31, 2026
47a2c5b
docs: add developer quickstart guide (closes #320)
Magada06 May 31, 2026
9eebff0
#268 Add API response compression metrics: prom-client and metrics en…
Philzwrist07 May 31, 2026
cc3527e
Issue #293: add stream metadata documentation
Philzwrist07 May 31, 2026
89b2a07
#284: SDK - add optional amount param to withdraw for partial withdra…
Philzwrist07 May 31, 2026
5f16a13
feat(logging): set up centralized ELK stack logging (#299)
Philzwrist07 May 31, 2026
09a9357
feat issue 310 322 323 324
Sulex45 Jun 1, 2026
2cc36f8
feat Add Python SDK with examples
Vibeofkd Jun 1, 2026
8ee3825
update
Jun 1, 2026
8a15638
update
LaahAbba Jun 1, 2026
87fb978
feat(stream): enforce minimum deposit = rate_per_second * 60 (#282)
JosephOnuh Jun 1, 2026
9f8e305
ci: set up GitHub Actions CI pipeline (#294)
JosephOnuh Jun 1, 2026
064f155
feat(db): add PostgreSQL schema and migrations (#248)
JosephOnuh Jun 1, 2026
ad0090e
feat(stream): add M-of-N multi-sig admin support (#275)
JosephOnuh Jun 1, 2026
846f820
docs: add video tutorial for end-to-end stream management (closes #327)
orunganiekan Jun 1, 2026
239eb6d
test: add comprehensive pause/resume unit tests (#329)
Sammy-Samy Jun 1, 2026
3f3d89f
test: add unit tests for batch stream creation (#330)
Sammy-Samy Jun 1, 2026
5a1f4f4
feat: implement canary deployment workflow for contract upgrades (#318)
Sammy-Samy Jun 1, 2026
07c39f3
feat: configure log-based alerting for errors (#313)
Sammy-Samy Jun 1, 2026
b59d539
feat: add token balance display for employer (#237)
Julianemeka Jun 1, 2026
c43af55
feat: build onboarding wizard for new employers (#232)
Julianemeka Jun 1, 2026
953d175
feat: implement dark mode support (#223)
Julianemeka Jun 1, 2026
bf14bcb
feat: add security penetration testing plan and automation (#332)
Julianemeka Jun 1, 2026
3b34ca6
feat: add REST API wrapper for stream contract
gene-nius Jun 2, 2026
f5bc3c2
feat: add i18n support with i18next
gene-nius Jun 2, 2026
b6435bd
feat: implement stream activity feed component
gene-nius Jun 2, 2026
7e29098
feat: add employer analytics dashboard
gene-nius Jun 2, 2026
78b2037
Merge pull request #441 from agnesadoga-creator/feat/employer-analyti…
Vera3289 Jun 2, 2026
c67562a
Merge pull request #440 from agnesadoga-creator/feat/stream-activity-…
Vera3289 Jun 2, 2026
c8c0862
Merge pull request #439 from agnesadoga-creator/feat/i18n-support-241
Vera3289 Jun 2, 2026
f4f9603
Merge pull request #438 from agnesadoga-creator/feat/rest-api-wrapper…
Vera3289 Jun 2, 2026
9bf60c9
Merge pull request #437 from Julianemeka/feat/security-pentest-332
Vera3289 Jun 2, 2026
44b3916
Merge pull request #436 from Julianemeka/feat/dark-mode-223
Vera3289 Jun 2, 2026
d284b6d
Merge pull request #435 from Julianemeka/feat/onboarding-wizard-232
Vera3289 Jun 2, 2026
f152630
Merge branch 'main' into feat/token-balance-display-237
Vera3289 Jun 2, 2026
b719392
Merge pull request #434 from Julianemeka/feat/token-balance-display-237
Vera3289 Jun 2, 2026
df38c6d
Merge pull request #433 from Sammy-Samy/feat/313-log-alerting
Vera3289 Jun 2, 2026
7f4f6b1
Merge pull request #432 from Sammy-Samy/feat/318-canary-deployment
Vera3289 Jun 2, 2026
7044d7e
Merge branch 'main' into feat/330-batch-stream-tests
Vera3289 Jun 2, 2026
fc3d4f0
Merge pull request #431 from Sammy-Samy/feat/330-batch-stream-tests
Vera3289 Jun 2, 2026
63cad97
Merge branch 'main' into feat/329-pause-resume-tests
Vera3289 Jun 2, 2026
ed2426a
Merge pull request #430 from Sammy-Samy/feat/329-pause-resume-tests
Vera3289 Jun 2, 2026
fb292c2
Merge pull request #429 from orunganiekan/docs/stream-creation-video-…
Vera3289 Jun 2, 2026
5950b91
Merge pull request #428 from JosephOnuh/feat/275-multisig-admin
Vera3289 Jun 2, 2026
3dee85b
Merge pull request #427 from JosephOnuh/feat/248-db-schema-migrations
Vera3289 Jun 2, 2026
1876f8b
Merge pull request #426 from JosephOnuh/feat/294-ci-pipeline
Vera3289 Jun 2, 2026
0bf20c1
Merge branch 'main' into feat/282-minimum-deposit-validation
Vera3289 Jun 2, 2026
c486379
Merge pull request #425 from JosephOnuh/feat/282-minimum-deposit-vali…
Vera3289 Jun 2, 2026
73e6108
Merge pull request #424 from LaahAbba/main
Vera3289 Jun 2, 2026
fa3a621
Merge pull request #423 from Georgebingi/main
Vera3289 Jun 2, 2026
e3663de
Merge pull request #421 from Vibeofkd/main
Vera3289 Jun 2, 2026
0349808
Merge branch 'main' into main
Vera3289 Jun 2, 2026
bd7d5f1
Merge pull request #420 from Sulex45/main
Vera3289 Jun 2, 2026
920a36e
Merge branch 'main' into issue-299-elk-logging
Vera3289 Jun 2, 2026
0d14b2e
Merge pull request #419 from Philzwrist07/issue-299-elk-logging
Vera3289 Jun 2, 2026
b52e08e
Merge pull request #418 from Philzwrist07/feature/284-partial-withdraw
Vera3289 Jun 2, 2026
3b7a55c
Merge pull request #417 from Philzwrist07/feature/add-stream-metadata…
Vera3289 Jun 2, 2026
87d8251
Merge branch 'main' into issue-268-api-response-compression
Vera3289 Jun 2, 2026
763cae8
Merge pull request #416 from Philzwrist07/issue-268-api-response-comp…
Vera3289 Jun 2, 2026
75dfa0b
Merge pull request #415 from Magada06/docs/issue-320-quickstart-guide
Vera3289 Jun 2, 2026
89c06ca
Merge branch 'main' into feat/fuzz-claimable-279
Vera3289 Jun 2, 2026
75ae776
Merge pull request #414 from Magada06/feat/fuzz-claimable-279
Vera3289 Jun 2, 2026
c17d70f
Merge pull request #413 from Magada06/feat/285-third-party-security-a…
Vera3289 Jun 2, 2026
cc357e4
Merge pull request #412 from Magada06/feat/issue-296-automated-testne…
Vera3289 Jun 2, 2026
8d8b712
Merge branch 'main' into feat/apm-monitoring-300
Vera3289 Jun 2, 2026
a23046d
Merge pull request #411 from pauljacobb/feat/apm-monitoring-300
Vera3289 Jun 2, 2026
5e752bb
Merge branch 'main' into feat/invariant-tests-291
Vera3289 Jun 2, 2026
3c241b7
Merge pull request #410 from pauljacobb/feat/invariant-tests-291
Vera3289 Jun 2, 2026
01c97b0
Merge pull request #409 from pauljacobb/feat/batch-gas-optimization-286
Vera3289 Jun 2, 2026
9a00579
Merge pull request #408 from pauljacobb/feat/coverage-reporting-295
Vera3289 Jun 2, 2026
b822de4
chore(deps): bump the patch-updates group in /demo with 4 updates (#443)
dependabot[bot] Jun 3, 2026
668547e
chore(deps): bump morgan from 1.10.1 to 1.11.0
dependabot[bot] Jun 3, 2026
2285fad
chore(deps): bump @bull-board/api from 5.23.0 to 7.1.5
dependabot[bot] Jun 3, 2026
d3e8c46
chore(deps): bump zaproxy/action-baseline from 0.12.0 to 0.15.0
dependabot[bot] Jun 3, 2026
b884b70
chore(deps): bump anchore/scan-action from 4 to 7
dependabot[bot] Jun 3, 2026
125f27b
chore(deps): bump docker/metadata-action from 5 to 6
dependabot[bot] Jun 3, 2026
e41fb49
chore(deps): bump actions/checkout from 4 to 6
dependabot[bot] Jun 3, 2026
2045f87
chore(deps): bump dependabot/fetch-metadata from 2 to 3
dependabot[bot] Jun 3, 2026
ef6e5f5
Merge pull request #452 from Vera3289/dependabot/github_actions/depen…
Vera3289 Jun 4, 2026
6641ce3
Merge pull request #451 from Vera3289/dependabot/github_actions/actio…
Vera3289 Jun 4, 2026
ef71dff
Merge pull request #450 from Vera3289/dependabot/github_actions/docke…
Vera3289 Jun 4, 2026
814858e
Merge pull request #449 from Vera3289/dependabot/github_actions/ancho…
Vera3289 Jun 4, 2026
d999a6e
Merge pull request #448 from Vera3289/dependabot/github_actions/zapro…
Vera3289 Jun 4, 2026
720afc6
Merge pull request #447 from Vera3289/dependabot/npm_and_yarn/bull-bo…
Vera3289 Jun 4, 2026
fdac53e
chore(deps): bump @bull-board/express from 5.23.0 to 7.1.5
dependabot[bot] Jun 4, 2026
ef6da16
chore(deps): bump @aws-sdk/client-secrets-manager
dependabot[bot] Jun 4, 2026
94c0a1e
chore(deps): bump bullmq from 5.77.6 to 5.78.0
dependabot[bot] Jun 4, 2026
3a6c5fb
Merge pull request #446 from Vera3289/dependabot/npm_and_yarn/morgan-…
Vera3289 Jun 4, 2026
3185f69
Merge pull request #445 from Vera3289/dependabot/npm_and_yarn/bullmq-…
Vera3289 Jun 4, 2026
5c15f1a
Merge pull request #444 from Vera3289/dependabot/npm_and_yarn/aws-sdk…
Vera3289 Jun 4, 2026
be849ab
Merge branch 'main' into dependabot/npm_and_yarn/bull-board/express-7…
Vera3289 Jun 4, 2026
613d00d
Merge pull request #442 from Vera3289/dependabot/npm_and_yarn/bull-bo…
Vera3289 Jun 4, 2026
daccfa5
fix: comprehensive codebase audit and build fixes across contracts, a…
Vera3289 Jun 8, 2026
ae28feb
chore(deps-dev): bump @types/react in /demo in the patch-updates grou…
dependabot[bot] Jun 9, 2026
9bc0fa5
chore(deps): bump the patch-updates group across 1 directory with 3 u…
dependabot[bot] Jun 16, 2026
5d78ad6
feat(ops): add ELK logging scaffold for issue #572
DevKingOche Jun 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .commitlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": ["@commitlint/config-conventional"]
}
51 changes: 51 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Server Configuration
PORT=3000
NODE_ENV=development
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173

# API Keys (comma-separated for multiple keys, legacy auth)
API_KEYS=your-api-key-here,another-api-key

# JWT Authentication (#245)
JWT_SECRET=change-me-use-a-long-random-secret

# Stellar Configuration
# Default network when X-Network header is absent (testnet | mainnet)
STELLAR_NETWORK=testnet

# Testnet
TESTNET_RPC_URL=https://soroban-testnet.stellar.org
TESTNET_STREAM_CONTRACT_ID=your-testnet-stream-contract-id
TESTNET_TOKEN_CONTRACT_ID=your-testnet-token-contract-id
TESTNET_DATABASE_URL=postgres://paystream:password@localhost:5432/paystream_testnet

# Mainnet
MAINNET_RPC_URL=https://mainnet.stellar.validationcloud.io/v1/soroban/rpc
MAINNET_STREAM_CONTRACT_ID=your-mainnet-stream-contract-id
MAINNET_TOKEN_CONTRACT_ID=your-mainnet-token-contract-id
MAINNET_DATABASE_URL=postgres://paystream:password@localhost:5432/paystream_mainnet

# Redis Configuration (for BullMQ job queue)
REDIS_URL=redis://localhost:6379

# Optional dependency probes
DATABASE_URL=postgres://paystream:password@localhost:5432/paystream
REDIS_URL=redis://127.0.0.1:6379

# AWS Secrets Manager
USE_AWS_SECRETS_MANAGER=false
AWS_SECRETS_MANAGER_SECRET_NAME=paystream/secrets
AWS_REGION=us-east-1

# Rate Limiting
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100

# Logging
LOG_LEVEL=info

# APM — Application Performance Monitoring (#300)
# Alert threshold: p99 latency above this value (ms) triggers a log alert
APM_ALERT_P99_MS=2000
# Rolling window size for latency percentile calculation (samples per route)
APM_MAX_SAMPLES=1000
20 changes: 20 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Smart contract files
/contracts/ @security-team
src/lib.rs @security-team
src/contract*.rs @security-team

# CI/CD pipelines and configuration
.github/workflows/ @devops-team
Dockerfile @devops-team
docker-compose.yml @devops-team
Makefile @devops-team

# Root configuration files
Cargo.toml @devops-team
Cargo.lock @devops-team
rust-toolchain.toml @devops-team

# Documentation and policies
SECURITY.md @security-team
CONTRIBUTING.md @security-team
DEPLOYMENT_CHECKLIST.md @devops-team
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Bug Report
about: Report a bug to help us improve
title: "[BUG] "
labels: bug
assignees: ''

---

## Description
A clear and concise description of what the bug is.

## Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. See error

## Expected Behavior
A clear description of what you expected to happen.

## Actual Behavior
What actually happened instead.

## Environment
- OS: [e.g., macOS, Linux]
- Rust version: [output of `rustc --version`]
- Soroban SDK version: [e.g., 22.0.0]

## Additional Context
Any other context about the problem here.

## References
See [CONTRIBUTING.md](../CONTRIBUTING.md) for contribution guidelines.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Feature Request
about: Suggest an idea for this project
title: "[FEATURE] "
labels: enhancement
assignees: ''

---

## Description
A clear and concise description of the feature you'd like to see.

## Use Case
Explain the problem your feature solves. What's the user benefit?

## Proposed Solution
How do you think this feature should work?

## Alternatives Considered
Any alternative approaches you've considered.

## Additional Context
Any other context or screenshots.

## References
See [CONTRIBUTING.md](../CONTRIBUTING.md) for contribution guidelines.
31 changes: 31 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
## Description
Brief description of the changes in this PR.

## Type of Change
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update
- [ ] Chore (dependency updates, configuration changes)

## Changes Checklist
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published

## Testing
Describe the tests you ran and how to reproduce them.

## Breaking Changes
Describe any breaking changes and migration path for users.

## References
Closes #

---
See [CONTRIBUTING.md](../CONTRIBUTING.md) for more details.
61 changes: 61 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
version: 2
updates:
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
commit-message:
prefix: "chore"
include: "scope"
groups:
patch-updates:
update-types:
- "patch"

- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
commit-message:
prefix: "chore"
include: "scope"
groups:
patch-updates:
update-types:
- "patch"

- package-ecosystem: "npm"
directory: "/demo"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
commit-message:
prefix: "chore"
include: "scope"
groups:
patch-updates:
update-types:
- "patch"

- package-ecosystem: "npm"
directory: "/sdk"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
commit-message:
prefix: "chore"
include: "scope"
groups:
patch-updates:
update-types:
- "patch"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore"
include: "scope"
32 changes: 32 additions & 0 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Security Audit

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
# Weekly scan every Monday at 08:00 UTC
- cron: "0 8 * * 1"

jobs:
audit:
name: cargo audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo audit binary
uses: actions/cache@v5
with:
path: ~/.cargo/bin/cargo-audit
key: cargo-audit-${{ runner.os }}-v0.21

- name: Install cargo-audit
run: cargo install --locked cargo-audit

- name: Run cargo audit
run: cargo audit --deny warnings
93 changes: 93 additions & 0 deletions .github/workflows/canary-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Canary Deployment

on:
workflow_dispatch:
inputs:
new_wasm_hash:
description: "WASM hash of the new contract version to canary"
required: true
network:
description: "Target network (testnet or mainnet)"
required: true
default: testnet

env:
CANARY_TRAFFIC_PERCENT: 5
HEALTHY_DURATION_SECONDS: 3600 # 1 hour of healthy canary before full rollout
ERROR_RATE_THRESHOLD: 0.01 # 1% error rate triggers rollback

jobs:
canary:
name: Canary Rollout
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.network }}
steps:
- uses: actions/checkout@v6

- name: Install Stellar CLI
run: |
curl -sSL https://github.com/stellar/stellar-cli/releases/latest/download/stellar-cli-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv stellar /usr/local/bin/

- name: Route 5% traffic to canary
env:
STELLAR_SECRET_KEY: ${{ secrets.STELLAR_SECRET_KEY }}
STREAM_CONTRACT_ID: ${{ secrets.STREAM_CONTRACT_ID }}
run: |
echo "Routing ${CANARY_TRAFFIC_PERCENT}% traffic to new WASM hash: ${{ github.event.inputs.new_wasm_hash }}"
stellar contract invoke \
--id "$STREAM_CONTRACT_ID" \
--source "$STELLAR_SECRET_KEY" \
--network ${{ github.event.inputs.network }} \
-- set_canary \
--wasm_hash "${{ github.event.inputs.new_wasm_hash }}" \
--traffic_percent "$CANARY_TRAFFIC_PERCENT"

- name: Monitor canary for 1 hour
env:
STELLAR_SECRET_KEY: ${{ secrets.STELLAR_SECRET_KEY }}
STREAM_CONTRACT_ID: ${{ secrets.STREAM_CONTRACT_ID }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
END=$((SECONDS + HEALTHY_DURATION_SECONDS))
while [ $SECONDS -lt $END ]; do
ERROR_RATE=$(stellar contract invoke \
--id "$STREAM_CONTRACT_ID" \
--source "$STELLAR_SECRET_KEY" \
--network ${{ github.event.inputs.network }} \
-- canary_error_rate 2>/dev/null || echo "1")

echo "Current canary error rate: $ERROR_RATE"

# Rollback if error rate exceeds threshold
if awk "BEGIN {exit !($ERROR_RATE > $ERROR_RATE_THRESHOLD)}"; then
echo "Error rate $ERROR_RATE exceeds threshold $ERROR_RATE_THRESHOLD — rolling back"
stellar contract invoke \
--id "$STREAM_CONTRACT_ID" \
--source "$STELLAR_SECRET_KEY" \
--network ${{ github.event.inputs.network }} \
-- rollback_canary
curl -s -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-type: application/json' \
--data "{\"text\":\"🚨 Canary rollback triggered: error rate $ERROR_RATE exceeded threshold $ERROR_RATE_THRESHOLD\"}"
exit 1
fi

sleep 60
done
echo "Canary healthy for ${HEALTHY_DURATION_SECONDS}s"

- name: Full rollout
env:
STELLAR_SECRET_KEY: ${{ secrets.STELLAR_SECRET_KEY }}
STREAM_CONTRACT_ID: ${{ secrets.STREAM_CONTRACT_ID }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
stellar contract invoke \
--id "$STREAM_CONTRACT_ID" \
--source "$STELLAR_SECRET_KEY" \
--network ${{ github.event.inputs.network }} \
-- promote_canary
curl -s -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-type: application/json' \
--data "{\"text\":\"✅ Canary promoted to full rollout: ${{ github.event.inputs.new_wasm_hash }}\"}"
Loading
Loading