everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
150 lines (115 loc) • 4.47 kB
Markdown
---
name: publish-sync
description: Publish bos.config.json to the FastKV registry, sync from upstream, and upgrade workspace packages. Use when deploying, syncing, or managing runtime configuration across projects.
metadata:
sources: "src/plugin.ts,src/cli/sync.ts,src/cli/upgrade.ts,src/fastkv.ts,src/integrity.ts"
---
# everything-dev Publish & Sync
## Core Workflow
```
Build → Deploy → Publish → Sync
↓ ↓ ↓ ↓
rspack Zephyr FastKV bos sync
CDN registry
```
## Publish
Publish `bos.config.json` to the configured FastKV registry path for the app account/domain:
```bash
bos publish # Publish config only
bos publish --deploy # Build/deploy all workspaces first, then publish
bos publish --dry-run # Preview without sending
bos publish --network testnet
bos publish --packages ui,api
```
After `bos publish --deploy`:
1. Each workspace builds and deploys to Zephyr CDN
2. `bos.config.json` is auto-updated with production URLs + integrity hashes
3. Config is published to the FastKV registry at `{account}/bos/gateways/{gateway}/bos.config.json`
## Sync
Pull template updates from the parent referenced by local `bos.config.json`:
```bash
bos sync
bos sync --force
bos sync --dry-run
```
What gets synced from the parent template:
- `app.*.production` — Zephyr URLs
- `app.*.ssr` — SSR URLs
- `shared` — shared dependency versions
- framework-owned files like build configs, router wiring, and shared runtime scaffolding
What stays local:
- `account`, `testnet` — your NEAR accounts
- `app.*.development` — local dev URLs
What gets merged:
- `app.*.secrets` — union of remote + local
- `app.*.variables` — merged (local overrides remote)
## Upgrade
Bump `every-plugin` and `everything-dev` across all workspaces:
```bash
bos upgrade # Check for new versions, update, then sync
bos upgrade --dry-run # Preview without making changes
```
`bos upgrade` updates **all workspace `package.json`s**, not just root. Also updates `peerDependencies` and `workspaces.catalog`. Correctly skips `workspace:*` and `catalog:` references.
## Build
```bash
bos build # Build all packages (skips missing)
bos build ui # Build specific package
bos build ui,api # Build multiple
bos build --force # Force rebuild
```
## Config Integrity
`bos.config.json` entries can include `integrity` fields with SRI hashes:
```json
{
"app": {
"ui": {
"production": "https://cdn.example.com/ui/remoteEntry.js",
"integrity": "sha384-abc123..."
}
}
}
```
These are auto-generated during `bos publish --deploy` and verified at runtime by the host.
## Configuration
All runtime config lives in `bos.config.json`. Key sections:
- `account` — NEAR mainnet account
- `testnet` — NEAR testnet account
- `staging.domain` — Staging domain
- `app.host`, `app.ui`, `app.api`, `app.auth` — Module configs with development/production URLs
- `plugins.{key}` — Plugin configs with variables, secrets, routes
- `shared.ui`, `shared.api` — Module Federation shared dependency versions
### extends
Config can inherit from a parent via `extends`:
```json
{ "extends": "bos://dev.everything.near/everything.dev" }
```
Or per-environment:
```json
{
"extends": {
"development": "bos://dev.everything.near/everything.dev",
"production": "bos://dev.everything.near/everything.dev",
"staging": "bos://staging.everything.near/everything.dev"
}
}
```
Deep merge: child overrides parent. Plugins are deep-merged (set to `null` to remove). `secrets` arrays are unioned. See the `extends-config` skill for full details.
### What bos dev writes vs bos publish writes
| Mode | Writes to | File |
|------|-----------|------|
| `bos dev` | `.bos/bos.resolved-config.json` | Full merged config (gitignored) |
| `bos build` | `.bos/bos.resolved-config.json` | Full merged config |
| `bos publish --deploy` | `bos.config.json` | Snapshot with pinned production URLs |
| `bos plugin publish` | `bos.config.json` | Records production URL + integrity |
| `bos sync` | `bos.config.json` | Merges template updates |
## Troubleshooting
```bash
bos info # Show current configuration
bos status # Check remote health
```
Process issues:
```bash
bos kill # Kill all tracked processes
bun install # Reinstall deps
bos dev --host remote # Restart
```