{"id":50742980,"url":"https://github.com/ohcnetwork/care_apps_registry","last_synced_at":"2026-06-10T18:30:43.108Z","repository":{"id":354174579,"uuid":"1208378660","full_name":"ohcnetwork/care_apps_registry","owner":"ohcnetwork","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-21T14:35:49.000Z","size":95,"stargazers_count":0,"open_issues_count":4,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T06:42:38.891Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ohcnetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-12T07:35:04.000Z","updated_at":"2026-05-19T10:40:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ohcnetwork/care_apps_registry","commit_stats":null,"previous_names":["ohcnetwork/care_apps_registry"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ohcnetwork/care_apps_registry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohcnetwork%2Fcare_apps_registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohcnetwork%2Fcare_apps_registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohcnetwork%2Fcare_apps_registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohcnetwork%2Fcare_apps_registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohcnetwork","download_url":"https://codeload.github.com/ohcnetwork/care_apps_registry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohcnetwork%2Fcare_apps_registry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34165482,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-10T18:30:40.300Z","updated_at":"2026-06-10T18:30:43.102Z","avatar_url":"https://github.com/ohcnetwork.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CARE AppStore\n\nThis directory is a temporary, extraction-friendly App Store repository for CARE plugins.\n\nThe 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.\n\n## How It Works\n\n- Every published app is defined by one canonical JSON file in `apps/`.\n- Contributors open a pull request that adds or updates exactly those app definition files.\n- Generated indexes are written to the AppStore root and browse directories:\n  - `index.json` for featured apps, categories, and developers\n  - `categories/*.json` for category browse pages\n  - `developers/*.json` for developer browse pages\n- CARE uses the generated indexes for discovery and fetches the canonical app JSON when an installation flow starts.\n\n## Directory Layout\n\n```text\nAppStore/\n  apps/                 Canonical app definition JSON files\n  categories/           Generated category browse indexes\n  developers/           Generated developer browse indexes\n  schema/               JSON schema for app definitions\n  scripts/              Generator and validation scripts\n  index.json            Generated root index referenced by CARE\n```\n\n## Contributor Flow\n\n1. Add or update a JSON file in `apps/`.\n2. Keep the file aligned with `schema/app.schema.json`.\n3. Commit your changes — the pre-commit hook runs `npm run appstore:generate` automatically and stages the updated indexes before the commit is finalised.\n4. Open a pull request.\n\n\u003e **Note:** The pre-commit hook is powered by [Husky](https://typicode.github.io/husky). Run `npm install` once after cloning to activate it.\n\nOn 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.\n\n## App Definition Contract\n\nEach app definition contains:\n\n- app metadata: slug, name, description, featured flag\n- developer metadata: slug, name, optional URL/description\n- category memberships: one or more category objects\n- base config: `url`, `name`, and `plug` for the frontend plug\n- source metadata: repository and optional app base URL metadata\n- one or more standard configurations: config overlays plus mandatory/default/optional/custom environment groups\n- one or more standard configurations: config overlays, an optional dedicated app base URL field, plus mandatory/default/optional/custom environment groups\n- one raw setup template: fallback configuration for manual editing\n- optional health check metadata: API URL and expected success status for pre-enable verification\n\nEnvironment fields default into `meta.config.\u003ckey\u003e`. 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}}`.\n\n## Local Preview\n\nIndexes are regenerated automatically on every commit via the pre-commit hook. To regenerate them manually:\n\n```bash\nnpm run appstore:generate\n```\n\nServe the directory locally:\n\n```bash\nnpm run serve\n```\n\nExample root index URL for CARE:\n\n```bash\nREACT_APP_STORE_INDEX_URL=http://localhost:3000/index.json\n```\n\n## Extraction Later\n\nThis 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohcnetwork%2Fcare_apps_registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohcnetwork%2Fcare_apps_registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohcnetwork%2Fcare_apps_registry/lists"}