Static plugin registry metadata for Lapis Notes. https://registry.lapis.md
  • JavaScript 59.1%
  • Astro 24.1%
  • CSS 13.2%
  • TypeScript 2.8%
  • Standard ML 0.8%
Find a file
Lapis Notes b8fe1eb485
All checks were successful
Checks / checks (push) Successful in 22s
Publish Registry / publish (push) Successful in 34s
Refresh official plugin bundle metadata
2026-06-07 00:32:19 +01:00
.astro Initial commit 2026-06-01 12:16:12 +01:00
.forgejo/workflows Accept base64 registry signing key secrets 2026-06-01 14:53:57 +01:00
docs Support compressed plugin bundles in registry 2026-06-06 23:59:36 +01:00
entries Refresh official plugin bundle metadata 2026-06-07 00:32:19 +01:00
functions Publish registry-hosted README artifacts 2026-06-01 16:39:47 +01:00
generated/v1 Refresh official plugin bundle metadata 2026-06-07 00:32:19 +01:00
public Initial commit 2026-06-01 12:16:12 +01:00
schemas Use bundle-only official plugin metadata 2026-06-06 22:56:02 +01:00
scripts Support compressed plugin bundles in registry 2026-06-06 23:59:36 +01:00
src Use bundle-only official plugin metadata 2026-06-06 22:56:02 +01:00
.gitignore Initial commit 2026-06-01 12:16:12 +01:00
.prettierignore Update prettier config 2026-06-01 13:19:20 +01:00
.prettierrc Initial commit 2026-06-01 12:16:12 +01:00
astro.config.mjs Initial commit 2026-06-01 12:16:12 +01:00
package.json Support compressed plugin bundles in registry 2026-06-06 23:59:36 +01:00
PLAN.md Initial commit 2026-06-01 12:16:12 +01:00
pnpm-lock.yaml Support compressed plugin bundles in registry 2026-06-06 23:59:36 +01:00
README.md Add deterministic official plugin sync 2026-06-06 21:07:34 +01:00
tsconfig.json Initial commit 2026-06-01 12:16:12 +01:00

Lapis Plugin Registry

Static plugin registry metadata for Lapis Notes.

The V1 registry publishes inline-signed JSON metadata for official installable plugins. Generated files under generated/v1/ are intended to be deployed as static assets, while official plugin release assets are published by the lapis-notes app repo as deterministic per-plugin-version Forgejo release downloads.

Commands

pnpm install
pnpm check
pnpm registry:validate
pnpm registry:sync:forgejo -- --plugin-versions lapis-pdf@2026.6.6 --dry-run
pnpm registry:generate
pnpm registry:verify-signatures

Registry signing uses protected CI secrets or a local key generated under ~/.lapis/:

pnpm registry:keygen

LAPIS_REGISTRY_KEY_ID=lapis-registry-2026-01 \
LAPIS_REGISTRY_PRIVATE_KEY_PEM_B64="$(base64 -i ~/.lapis/lapis-registry-private.pem | tr -d '\n')" \
pnpm registry:sign

Private keys must never be committed. The committed bootstrap metadata is signed so verification can run in CI before production keys are installed.

Layout

  • entries/**: human-maintained JSONC source entries.
  • schemas/**: strict JSON schemas for source and generated metadata.
  • generated/v1/**: deterministic generated registry files with inline signatures plus matching signature sidecars.
  • scripts/**: validation, generation, signing, and verification tooling.

Official plugin asset builds, release signing, and Forgejo upload live in the lapis-notes repository. This registry syncs those published releases into reviewed metadata with pnpm registry:sync:forgejo. Plugin detail metadata can also include a signed mutable readmeUrl; the site build fetches those README sources and publishes deterministic artifacts under v1/readmes/<plugin-id>/ so browser clients render registry-hosted markdown without depending on source host CORS. Documentation copy changes require a site rebuild, but not metadata or release republishing. Cloudflare Pages middleware adds Access-Control-Allow-Origin: * to published registry files and README artifacts so the Lapis app can fetch them from web, PWA, and Electron surfaces.