Files
iios/PUBLISHING.md
T
maaz519 64c498a97a build: publish @insignia/iios-* SDKs to the Gitea package registry
- .npmrc routes the @insignia scope to https://git.lynkedup.cloud/api/packages/insignia/npm/
  (auth via ${GITEA_TOKEN} env — no secret committed).
- The 9 frontend SDK packages (contracts, kernel-client, adapter-sdk, *-web) are now
  publishable: private dropped, version 0.1.0, publishConfig pinned to Gitea. iios-service
  and iios-testkit stay private (pnpm publish skips them).
- Root `release` / `release:dry` scripts; a Gitea Actions workflow publishes on a v* tag.
- PUBLISHING.md documents publish + consumer (.npmrc) setup.

Verified: dry-run packs cleanly and workspace:* deps resolve to 0.1.0 in the tarball.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 17:13:55 +05:30

2.0 KiB

Publishing the IIOS SDKs (Gitea package registry)

The @insignia/iios-* frontend SDKs publish to our self-hosted Gitea npm registry:

https://git.lynkedup.cloud/api/packages/insignia/npm/

Published (public in the registry): iios-contracts, iios-kernel-client, iios-adapter-sdk, and the React hook packages iios-message-web, iios-inbox-web, iios-support-web, iios-ai-web, iios-community-web, iios-meeting-web. Kept private (never published): iios-service (the deployed backend) and iios-testkit (dev fakes).

be-crm does not consume these — it talks to IIOS over REST. The SDKs are a frontend concern (chat-web, the CRM support UI, mobile).

One-time: get a token

Gitea → Settings → Applications → Generate Token:

  • to publish: scope write:package
  • to install (private packages): scope read:package

Export it (never commit it):

export GITEA_TOKEN=<your-gitea-token>

The repo .npmrc already routes the @insignia scope to Gitea and reads ${GITEA_TOKEN}.

Publish

pnpm release:dry      # build all + pack (no upload) — verify the 9 packages pack cleanly
pnpm release          # build all + publish the non-private packages to Gitea

pnpm -r publish automatically skips private packages, so only the 9 SDKs go out. Versions are immutable — bump before re-publishing (edit version, or adopt changesets).

Or push a tag and let CI do it (see .gitea/workflows/publish-sdks.yml; needs Gitea Actions + a runner + the GITEA_PUBLISH_TOKEN secret):

git tag v0.1.0 && git push origin v0.1.0

Consume (in chat-web / the CRM front-end)

Add an .npmrc to the consuming repo:

@insignia:registry=https://git.lynkedup.cloud/api/packages/insignia/npm/
//git.lynkedup.cloud/api/packages/insignia/npm/:_authToken=${GITEA_TOKEN}

Then:

export GITEA_TOKEN=<read-token>
pnpm add @insignia/iios-kernel-client @insignia/iios-contracts

This replaces the vendored client that chat-web copies today — one source of truth for all frontends.