Skip to content

Reference source · 0.1.0-dev.11

publication.md

docs/publication.md · Download original file

# Website and source publication

The developer documentation site is published at [OPRP's current public URL](https://oprp-convey.jason-blood.chatgpt.site). The requested `oprp.convey.care` hostname is registered but still awaits DNS verification. The website contains the complete repository documentation and source/schema references, developer guides, SDK compatibility and project status. Public SDK repository links remain pending the approved Git destination. Apache-licensed developer installation packages are available from the website.

## License

OPRP's original specification, documentation, schemas, profiles, reference Host, SDKs and tooling are licensed under the [Apache License, Version 2.0](../LICENSE), with attribution in [NOTICE](../NOTICE). This permits royalty-free commercial use, modification and redistribution subject to the license terms. There is no restriction on modified forks or independently written compatible implementations. The Apache license includes its contributor patent grant; broader standards governance and patent commitments remain separate work.

The license applies to this OPRP project, not the existing Convey portal or a future EMR. [Third-party materials](../THIRD_PARTY_NOTICES.md) retain their own licenses and notices. Convey names/logos identify the official publisher; Apache 2.0 does not grant general trademark rights or establish certification.

Root and SDK/profile metadata use `Apache-2.0`. TypeScript, Python, .NET and clinical profile packages include the license and attribution notices. Package generation is local; website downloads do not imply npm, PyPI or NuGet registry publication.

## Git release preparation

```sh
npm run prepare:release
```

This creates a protocol-only export under ignored `.demo/public-release` and a source tarball with file hashes. It includes the specification, schemas, profiles, all three SDK projects, reference Host, synthetic tests, operational tooling, site builder and prepared CI. It excludes the existing portal, local service identities/databases, virtual environments, caches, generated builds and environment files. No public Git push or package-registry publication occurs in that command. The manifest reports whether an assigned root license and LICENSE file exist; source preparation alone is not an open-source rights grant.

The currently connected GitHub account is unable to access the existing Convey-Health repository. Choose/connect the approved account or organization before creating the public repository. The license and package metadata are now aligned. Preserve third-party notices, publish the dedicated source, tag the verified developer version and attach the built SDK/profile packages with checksums. Verify actual repository/release URLs before adding website links. Do not publish the entire existing Convey application repository to solve this step.

The source includes contribution/security drafts and official-action revisions pinned in CI. Local checks passed; remote GitHub Actions execution is still to be observed once a repository is connected. The baseline developer release uses Git installation packages first; npm/PyPI/NuGet registry publication is a separate maintainership step.

## Documentation site lifecycle

`npm run build:website` renders repository Markdown into a portable static site; `npm run check:website` validates local routes, assets, source links and heading anchors. `website/config.json` supplies the actual repository, license, canonical site origin and recorded test evidence. The generator uses Convey's existing assets and self-hosted Cairo font with its original notice. No patient record server, authority or central protocol lookup is hosted by the documentation site.

The current site is served through Sites from a dedicated Git-backed static checkout. Its hosting manifest belongs to that deployment checkout rather than the protocol implementation. Future source and documentation remain usable independently of Sites or Convey hosting. Keep generated content and native deployment metadata aligned; only a successful deployment status establishes a live publication.

## Next.js website and Vercel deployment

The website is a separate **Next.js App Router, Tailwind CSS and shadcn/ui** project in `protocol/website`. Its React pages are in `website/app`, shared components in `website/components`, and the official shadcn/ui components in `website/components/ui`. `website/package.json`, `next.config.ts`, `postcss.config.mjs` and `components.json` define the website stack.

In Vercel, import `Convey-Health/Convey-Exchange` on branch `main`, set **Root Directory `protocol/website`**, and choose **Framework Preset Next.js**. Install with `npm ci --include=dev`, build with `npm run build`, and use Output Directory `.next` as supplied by `website/vercel.json`. Clear any dashboard override of `out`, or change it to `.next`. The Vercel Next.js adapter reads build metadata such as `routes-manifest.json` from `.next`, detects the completed static export and serves its pages from `out`. Pointing the adapter at `out` causes the missing route-manifest error. The website's postbuild check verifies both the adapter metadata and exported documentation pages. This is a real Next.js application using static export for documentation pages; it does not run a clinical Host on Vercel.

The prepared content snapshot and public files are included in the website project so Vercel needs no files outside its selected root. From the protocol directory, `npm run build:website` refreshes that snapshot from the canonical Markdown, schemas and source references, then builds Next.js. For a website-only checkout, `npm ci` and `npm run build` use the checked-in snapshot. After editing protocol documentation, refresh and commit the website content/public files with the documentation changes.

The current signed/hashed SDK archives are staged under `website/releases`. After rebuilding and verifying a release locally, run `npm run stage:website-downloads` before refreshing the website content. Website preparation verifies SHA-256 checksums and the website's prebuild verifies the prepared content/public files. The build requires no Python/.NET/Java or private validator cache.

Optional `OPRP_SITE_ORIGIN` supplies the actual production origin for sitemap and metadata, such as `https://convey-oprp.vercel.app`, or `https://oprp.convey.care` after the domain is connected. Vercel custom-domain setup uses Vercel's records; the existing Sites verification records apply only to Sites.

The `oprp-site` folder is the separate checkout for the original hosted preview and is excluded from Exchange Git. It is not the editable Next.js project. If `protocol/website` is absent from Vercel's picker, verify the selected repository, branch and pushed commit.

## Custom hostname

`convey.care` currently uses Vercel DNS. The domain connection needs one CNAME and two TXT verification records. Exact records are saved in the private local publication report returned by the hosting provider. Add them for the `oprp` subdomain without replacing the main website's DNS records, then refresh the domain status and wait for active routing/certificate status. A registered/pending domain is not a live HTTPS endpoint.

Once `oprp.convey.care` is active, update the site's canonical origin and republish its sitemap/metadata. Add the OPRP link to the main Convey navigation when its actual website source/deployment is available.

**Next:** complete the Git account/destination choice, publish the verified source/release links, and apply/verify the exact DNS records for the requested hostname.