mirror of https://github.com/OpenVidu/openvidu.git
1.7 KiB
1.7 KiB
Design
Context
InfoService.build()reads an optionallicensecallback, bound in the container toTOKENS.LicenseInfo(() => undefinedon CE). It spreads the result into the response only when it is defined.- The
GET /api/v1/inforoute declareslicenseas an optional object of its zod response schema, so the OpenAPI document shows it. FeatureKey.LICENSE_INFOhas a copy inFEATURE_COPY, but no route or page gates on it.
Goals / Non-Goals
Goals:
- No edition can add license data to
GET /api/v1/info, and the OpenAPI document does not suggest it.
Non-Goals:
- Changing
info.licenseof the OpenAPI document orapiLicense. - Any other key of the info response.
Decisions
Remove the seam, not only the field
The token, the service option, the type and the schema property all go. An extending edition can no longer rebind
LicenseInfo, because the token no longer exists. The response schema has no license property, so the document
never declares it.
Alternative rejected: keeping the token with a CE default and dropping only the schema property. The response would still carry whatever a rebinding returned, without documentation.
Drop the feature identifier
license-info gated nothing. Keeping it would advertise a feature in features that no page offers.
OpenAPI shape
GET /api/v1/info: the200schema loseslicense, andfeaturesitems loselicense-info.- Paths, parameters and status codes do not change. No query, index or performance budget is involved.
Risks / Trade-offs
- [Removing a key from
v1] → The key was never released, so the versioning policy for released fields does not apply.