This directory is a temporary, extraction-friendly App Store repository for CARE plugins.
The App Store is served as static JSON. CARE points to the root index file through REACT_APP_STORE_INDEX_URL and uses that index to show featured apps and browse apps by category or developer.
- Every published app is defined by one canonical JSON file in
apps/. - Contributors open a pull request that adds or updates exactly those app definition files.
- Generated indexes are written to the AppStore root and browse directories:
index.jsonfor featured apps, categories, and developerscategories/*.jsonfor category browse pagesdevelopers/*.jsonfor developer browse pages
- CARE uses the generated indexes for discovery and fetches the canonical app JSON when an installation flow starts.
AppStore/
apps/ Canonical app definition JSON files
categories/ Generated category browse indexes
developers/ Generated developer browse indexes
schema/ JSON schema for app definitions
scripts/ Generator and validation scripts
index.json Generated root index referenced by CARE
- Add or update a JSON file in
apps/. - Keep the file aligned with
schema/app.schema.json. - Commit your changes — the pre-commit hook runs
npm run appstore:generateautomatically and stages the updated indexes before the commit is finalised. - Open a pull request.
Note: The pre-commit hook is powered by Husky. Run
npm installonce after cloning to activate it.
On pull requests, CI validates that the indexes are up to date. On merge, GitHub Actions regenerate the indexes and commit them back if they changed.
Each app definition contains:
- app metadata: slug, name, description, featured flag
- developer metadata: slug, name, optional URL/description
- category memberships: one or more category objects
- base config:
url,name, andplugfor the frontend plug - source metadata: repository and optional app base URL metadata
- one or more standard configurations: config overlays plus mandatory/default/optional/custom environment groups
- one or more standard configurations: config overlays, an optional dedicated app base URL field, plus mandatory/default/optional/custom environment groups
- one raw setup template: fallback configuration for manual editing
- optional health check metadata: API URL and expected success status for pre-enable verification
Environment fields default into meta.config.<key>. A setup-level appBaseUrl field is treated specially: CARE computes meta.url as ${appBaseUrl}/assets/remoteEntry.js instead of storing appBaseUrl as an environment value. Environment fields can still override any target path such as meta.url explicitly when needed. Health checks can interpolate environment values using placeholders like {{apiBaseUrl}}.
Indexes are regenerated automatically on every commit via the pre-commit hook. To regenerate them manually:
npm run appstore:generateServe the directory locally:
npm run serveExample root index URL for CARE:
REACT_APP_STORE_INDEX_URL=http://localhost:3000/index.jsonThis directory intentionally avoids assumptions about the surrounding repository. It can be moved into a separate GitHub repository later and served unchanged from GitHub Pages or any other static host.