fair-protocol/registry.md
toderash c1135dc02d spec: add composer-name, x-composer-requires, x-composer-repositories, and env key registry
Adds three interrelated changes to support Composer ecosystem integration:

- `composer-name` (Metadata Document): optional field declaring the canonical
  Composer vendor/package name, providing the FAIR → Composer direction of the
  bidirectional identity link.

- `x-composer-requires` (Release Document): optional map of Composer-native
  dependencies not registered in FAIR, allowing full dependency graph resolution
  for packages whose transitive deps have no FAIR DIDs.

- `x-composer-repositories` (Release Document): optional source hints for
  x-composer-requires entries not resolvable through standard public registries.

- Environment keys table (registry.md): registers env:php, env:php-{name},
  env:typo3, and env:wp with value format and Composer platform package mappings.
  Unregistered env: keys are effectively client blockers per the requires spec.

Signed-off-by: toderash <brent@toderash.net>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 10:48:54 -05:00

47 lines
2.9 KiB
Markdown

# Registry
This document is a registry for the known extensions to the FAIR Package Management Protocol, along with defined package and artifact types.
## Extensions
| Name | Contact |
| -------------------------------------------- | ------------------ |
| [FAIR Authentication Methods](./ext-auth.md) | FAIR Working Group |
| [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group |
| [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group |
## Package Types
| Type | Extension | Contact |
| ----------------- | ------------------------------------------ | ------------------ |
| `wp-core` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group |
| `wp-plugin` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group |
| `wp-theme` | [FAIR for WordPress Packages](./ext-wp.md) | FAIR Working Group |
| `typo3-core` | Reserved for future use. | FAIR Working Group |
| `typo3-extension` | [FAIR for TYPO3 Packages](./ext-typo3.md) | FAIR Working Group |
| `typo3-theme` | Reserved for future use. | FAIR Working Group |
## Environment Keys
Environment keys appear in the `requires`, `suggests`, and `compatibility` maps of Release Documents, prefixed with `env:`. They represent runtime environment requirements that are not themselves FAIR packages.
| Key | Extension | Description | Value format |
| --- | --------- | ----------- | ------------ |
| `env:php` | FAIR for TYPO3, FAIR for WordPress | PHP interpreter version | semver range |
| `env:php-{name}` | FAIR for TYPO3, FAIR for WordPress | PHP extension presence. The suffix `{name}` is the PHP extension identifier (e.g. `env:php-json`, `env:php-mbstring`). | semver range, or `*` for any version |
| `env:typo3` | FAIR for TYPO3 | TYPO3 CMS version | semver range |
| `env:wp` | FAIR for WordPress | WordPress core version | semver range |
`env:php-{name}` is a pattern key matching any key of the form `env:php-` followed by a valid PHP extension name. The value `*` means presence is required but any version is acceptable. Clients that cannot determine the installed version of a PHP extension MAY treat a specific version constraint as unfulfilled.
For Composer integration: `env:php` maps to the `php` platform package; `env:php-{name}` maps to `ext-{name}`; `env:typo3` maps to `typo3/cms-core`; `env:wp` maps to `roots/wordpress`.
## Authentication Methods
| Method | Extension | Contact |
| -------- | -------------------------------------------- | ------------------ |
| `bearer` | [FAIR Authentication Methods](./ext-auth.md) | FAIR Working Group |
| `basic` | [FAIR Authentication Methods](./ext-auth.md) | FAIR Working Group |
| `oauth2` | [FAIR Authentication Methods](./ext-auth.md) | FAIR Working Group |