Fix fdc3-context typegen to resolve AppIdentifier ref locally - #2156
Open
Roaders wants to merge 1 commit into
Open
Fix fdc3-context typegen to resolve AppIdentifier ref locally#2156Roaders wants to merge 1 commit into
Roaders wants to merge 1 commit into
Conversation
✅ Deploy Preview for fdc3 canceled.
|
Previously, npm run clean followed by npm run build failed across the whole monorepo. The fdc3-context typegen script did not pass fdc3-schema's api.schema.json as a local schema source, so quicktype fell back to fetching the cross-package $ref for AppIdentifier over the network from an unpublished $id URL. That fetch failure was silently swallowed by s2tQuicktypeUtil.cjs's use of exec(), leaving generated/context empty and breaking every downstream package that depends on @finos/fdc3-context. - Pass ../../fdc3-schema/schemas/api/api.schema.json as an additional local schema source in fdc3-context's typegen script, mirroring the pattern fdc3-schema already uses in the opposite direction. - Regenerate ContextTypes.ts, picking up the Security & Identity documentation link path fix (/docs/next/api/security) that had not been reflected in the previously committed generated file. - Add CHANGELOG entries. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2156 +/- ##
=======================================
Coverage 95.03% 95.03%
=======================================
Files 73 73
Lines 4251 4251
Branches 596 596
=======================================
Hits 4040 4040
Misses 211 211 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Roaders
force-pushed
the
context-build-fixes
branch
from
August 28, 2026 08:21
db14139 to
c11a471
Compare
elkampu
approved these changes
Aug 30, 2026
elkampu
left a comment
There was a problem hiding this comment.
LGTM. I independently reproduced the failure and fix with Node 24.18.0/npm 11.10.0: at base cb00631, a clean fdc3-context build fails resolving ../api/api.schema.json and produces no generated output; at c11a471, the same clean build resolves AppIdentifier from the added local schema source and completes successfully. The regenerated AppIdentifier shape matches api.schema.json, the security-link output matches its schema sources, and all 39 context-schema tests pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, npm run clean followed by npm run build failed across the whole monorepo. The fdc3-context typegen script did not pass fdc3-schema's api.schema.json as a local schema source, so quicktype fell back to fetching the cross-package $ref for AppIdentifier over the network from an unpublished $id URL. That fetch failure was silently swallowed by s2tQuicktypeUtil.cjs's use of exec(), leaving generated/context empty and breaking every downstream package that depends on @finos/fdc3-context.
Contributor License Agreement
Review Checklist
DesktopAgent,Channel,PrivateChannel,Listener,Bridging)?JSDoc comments on interfaces and types should be matched to the main documentation in /docs
Conformance test definitions should cover all required aspects of an FDC3 Desktop Agent implementation, which are usually marked with a MUST keyword, and optional features (SHOULD or MAY) where the format of those features is defined
The Web Connection protocol and Desktop Agent Communication Protocol schemas must be able to support all necessary aspects of the Desktop Agent API, while Bridging must support those aspects necessary for Desktop Agents to communicate with each other
npm run build) run and the results checked in?Generated code will be found at
/src/api/BrowserTypes.tsand/or/src/bridging/BridgingTypes.tsBaseContextschema applied viaallOf(as it is in existing types)?titleanddescriptionprovided for all properties defined in the schema?npm run build) run and the results checked in?Generated code will be found at
/src/context/ContextTypes.tsTHIS SOFTWARE IS CONTRIBUTED SUBJECT TO THE TERMS OF THE FINOS CORPORATE CONTRIBUTOR LICENSE AGREEMENT.
THIS SOFTWARE IS LICENSED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND ANY WARRANTY OF NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THIS SOFTWARE MAY BE REDISTRIBUTED TO OTHERS ONLY BY EFFECTIVELY USING THIS OR ANOTHER EQUIVALENT DISCLAIMER IN ADDITION TO ANY OTHER REQUIRED LICENSE TERMS.