Skip to content

Add optional FDC3 version property to AppD record - #1965

Open
julianna-ciq wants to merge 11 commits into
finos:mainfrom
InteropIO:appd-fdc3-version-range
Open

Add optional FDC3 version property to AppD record#1965
julianna-ciq wants to merge 11 commits into
finos:mainfrom
InteropIO:appd-fdc3-version-range

Conversation

@julianna-ciq

Copy link
Copy Markdown
Contributor

Summary

  • add AppD fdc3Version metadata as an npm-style semver range
  • filter web Desktop Agent AppD records by compatibility with the agent FDC3 version
  • add focused coverage for compatible, incompatible, invalid, and unversioned AppD records

Fixes #1871

Verification

  • npx.cmd tsc -p toolbox/fdc3-for-web/fdc3-web-impl/tsconfig.json --noEmit
  • npm.cmd test --workspace toolbox/fdc3-for-web/fdc3-web-impl -- BasicDirectory reaches compile, then stops because vitest is not installed in the local checkout

@julianna-ciq
julianna-ciq requested a review from a team as a code owner July 8, 2026 14:37
@netlify

netlify Bot commented Jul 8, 2026

Copy link
Copy Markdown

Deploy Preview for fdc3 ready!

Name Link
🔨 Latest commit 8d052e2
🔍 Latest deploy log https://app.netlify.com/projects/fdc3/deploys/6a85b3fe77031c000827df0d
😎 Deploy Preview https://deploy-preview-1965.preview-fdc3.finos.org
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@julianna-ciq julianna-ciq changed the title Add AppD FDC3 version range metadata [DRAFT] Add optional FDC3 version property to AppD record Jul 8, 2026
@kriswest

Copy link
Copy Markdown
Contributor

picked up some conflicts and is failing out of the website build for some reason - needs investigation

@julianna-ciq

Copy link
Copy Markdown
Contributor Author

@kriswest I think Netlify is failing because .npmrc has a min-release-age = 7 rule, but dependency fast-uri@3.1.4 is only 3 days old. I think we'll need to downgrade fast-uri to 3.1.2 if we want to merge anything in the next 4 days

@kriswest

Copy link
Copy Markdown
Contributor

Hmm, dependabot is supposed to have the same setting:

default-days: 7

and it proposed that update. I guess its not applying that config to the website folder?? Would also explain why its not grouping updates for the website.

I'll raise something to try and do that downgrade and fix the dependabot config.

@kriswest

Copy link
Copy Markdown
Contributor

@julianna-ciq This should fix it, could you take a look: #2007
If happy go ahead and merge it, then rebase here

Comment thread packages/fdc3-standard/src/app-directory/specification/appd.schema.json Outdated
@codecov-commenter

codecov-commenter commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.15%. Comparing base (ecfb714) to head (8d052e2).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1965      +/-   ##
==========================================
+ Coverage   95.11%   95.15%   +0.04%     
==========================================
  Files          73       73              
  Lines        4196     4212      +16     
  Branches      667      675       +8     
==========================================
+ Hits         3991     4008      +17     
+ Misses        205      204       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@kriswest

kriswest commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Is this still a draft? can you change title if not and I'll review

@julianna-ciq julianna-ciq changed the title [DRAFT] Add optional FDC3 version property to AppD record Add optional FDC3 version property to AppD record Aug 12, 2026

@kriswest kriswest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The regex for validation needs testing and needs a few tweaks - we should lose the v1 appD spec at the same time

Comment thread packages/fdc3-standard/src/app-directory/specification/appd.schema.json Outdated
Comment thread toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts Outdated
Comment thread toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts Fixed
Comment thread toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts Fixed
Comment thread toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts Fixed
import { Directory, DirectoryApp, DirectoryIntent } from './DirectoryInterface.js';

// Keep synchronized with BaseApplication.properties.fdc3Version.pattern in appd.schema.json.
export const FDC3_VERSION_RANGE_PATTERN =

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this the best way of doing this? Can't we use the semver library to verify the versions?
If we do want to keep this it's probably a good idea to have some comments here explaining with examples of what are valid versions.

}
}

export function appSupportsFdc3Version(app: DirectoryApp, fdc3Version: string): boolean {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume fdc3Version here is the version of the desktop agent and not a range?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

App Directory does not contain information about the version of FDC3 that the application requires

5 participants