EdgeTools is Edge Wallet's resource and utility directory. The repository builds the public catalog, four local browser tools, and protected staff surfaces:
edgetools.app— the one public catalog, with/fio/,/token/,/status/, and/orders/local tool routes.support.edgetools.app— a lean legacy handoff to the official Help Center plus the protected Support workspace.staff.edgetools.app— a restricted company-wide router for department workspaces and shared staff resources, including the focused/qa/workspace.support.edgetools.app/staff/— a restricted, Support-specific workflow launcher for customer response, investigation, account access and device authorization, and service diagnostics.
The public site is static-only. The only runtime is two narrow, stateless
public API routes on a dedicated public Worker; there are no
analytics, account system, secrets, or retained user data. The Staff surfaces
are only launchers:
production must protect the Staff host and the Support /staff/ route with
Google-backed Cloudflare Access, and each linked destination remains
responsible for its own authorization. Staff target URLs are injected during a
private build and are never committed to this public repository.
Requirements: Node.js 24 or newer.
npm run check
npm run previewThe preview defaults to http://127.0.0.1:4173. Its local routes mirror the
production hosts and protected paths:
/— main EdgeTools directory/support/— legacy Help Center and Support Staff handoff/support/staff/datecalc/— protected DateCalc/fio/,/token/,/status/,/orders/— public tool previews/staff/— company-wide Staff hub; local preview does not simulate Google login/staff/qa/— QA staff workspace; local preview does not simulate Google login/support/staff/— Support staff workspace; local preview does not simulate Google login/support/staff/account-access/— protected Account Access & Device Authorization workflow; local preview does not simulate Google login
To share a temporary preview over a private network, bind the server to the machine's private interface:
npm run preview -- --host <private-interface-ip>Do not bind a development preview to a public interface.
For a local review, create ignored config/staff-targets.local.json with any of
these keys:
- Company-wide hub:
teamGuide,releasePlanning,hudl,reports,posthog,prometheus, andproofOfWorkLifeIdeas - QA staff:
zealot,testrail,sentry,jenkins,browserstack, andunifi - Support staff:
voucher(the legacy target identifier for the authorization request destination),userLookup,internalTools,logsUpload, andintercomInbox
Cloudflare Workers Builds provide the matching build-time environment variables for the protected outputs:
EDGETOOLS_GLOBAL_STAFF_TEAM_GUIDE_URLEDGETOOLS_GLOBAL_STAFF_RELEASE_PLANNING_URLEDGETOOLS_GLOBAL_STAFF_HUDL_URLEDGETOOLS_GLOBAL_STAFF_REPORTS_URLEDGETOOLS_GLOBAL_STAFF_POSTHOG_URLEDGETOOLS_GLOBAL_STAFF_PROMETHEUS_URLEDGETOOLS_GLOBAL_STAFF_PROOF_OF_WORK_LIFE_IDEAS_URLEDGETOOLS_QA_STAFF_ZEALOT_URLEDGETOOLS_QA_STAFF_TESTRAIL_URLEDGETOOLS_QA_STAFF_SENTRY_URLEDGETOOLS_QA_STAFF_JENKINS_URLEDGETOOLS_QA_STAFF_BROWSERSTACK_URLEDGETOOLS_QA_STAFF_UNIFI_URLEDGETOOLS_SUPPORT_STAFF_VOUCHER_URLEDGETOOLS_SUPPORT_STAFF_USER_LOOKUP_URLEDGETOOLS_SUPPORT_STAFF_INTERNAL_TOOLS_URLEDGETOOLS_SUPPORT_STAFF_LOGS_URLEDGETOOLS_SUPPORT_STAFF_INTERCOM_URL
Only credential-free HTTPS URLs are accepted, except the exact internal
Jenkins origin http://jack2:8080. Missing targets render as disabled cards;
they are not silently guessed. Set
EDGETOOLS_STAFF_TARGETS_FILE to use a different private JSON file during a
build.
.do/app.static.yamldefines the two public static components and routesedgetools.appandsupport.edgetools.appby hostname. DigitalOcean builds onlydist/mainanddist/supportfromJP0P/edgetools:main.- The exact
edgetools.app/api/statusandedgetools.app/api/tokenroutes are attached to the dedicatededgetools-public-apiWorker. They are public routes with no private Support headers. The status route aggregates a fixed upstream list; the token route exposes only validated CoinGecko lookups. wrangler.staff.jsoncdeploysdist/staffas the origin for the entirestaff.edgetools.apphostname.wrangler.support-staff.jsoncdeploysdist/support-staffonly onsupport.edgetools.app/staffand/staff/*.- All three Workers disable
workers.devand preview URLs. Cloudflare Access must protect the whole Staff hostname plus both Support Staff paths.
The protected Worker builds need the relevant target URL variables above. Those values belong in Cloudflare build settings, not this public repository. The public DigitalOcean build needs none of them.
npm run build # create the two public and two protected static outputs
npm test # unit and source-contract tests
npm run check:links # verify local routes and live external links
npm run check:deploy # dry-run all three Worker bundles
npm run check:secrets # scan the repository with gitleaks
npm run check # build, test, link check, and secret scan
npm run deploy:staff # require global Staff URLs, then deploy that Worker
npm run deploy:support-staff # require Support Staff URLs, then deploy that Worker
npm run deploy:public-api # deploy the exact public API routesSee ARCHITECTURE.md for host routing and deployment boundaries. See DEPLOYMENT.md for the release, verification, and rollback checklist. See public-tools-manifest.json for pinned source provenance and selective migration notes.