Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create an AppD reference implementation #563

Open
Tracked by #664 ...
kriswest opened this issue Jan 24, 2022 · 8 comments
Open
Tracked by #664 ...

Create an AppD reference implementation #563

kriswest opened this issue Jan 24, 2022 · 8 comments
Labels
app-directory citi-hackathon help wanted Extra attention is needed needs-pr toolbox Apps or code that isn't part of the standard but supports it use

Comments

@kriswest
Copy link
Contributor

Enhancement Request

It is advisable that any standard provide a reference implementation that may be used to confirm or compare the expected behavior of an implementation of the standard and/or be used as a base for other implementations. The AppD is one such standard and it is likely that the provision of a usable reference implementation will help drive its uptake throughout the financial services desktop software community.

In the past, a java implementation of the AppD was provided at: https://github.com/FDC3/appd-poc. This is not currently maintained, nor included in the FDC3 repository. Reviving this implementation, or providing a new one (ideally based on Node.js) is desirable.

Use Case:

  • Reference implementations may be used:
    • directly, saving a firm from implementing their own AppD
    • as a starting point by firm implementing their own AppD
    • as an example of expected behavior from AppD.
@kriswest kriswest added enhancement New feature or request help wanted Extra attention is needed app-directory needs-pr labels Jan 24, 2022
@kriswest kriswest added this to the 2.0-candidates milestone Jan 24, 2022
@kriswest kriswest removed this from the 2.0-candidates milestone May 17, 2022
@kriswest kriswest added the good first issue Good for newcomers label Sep 22, 2022
@kriswest kriswest added toolbox Apps or code that isn't part of the standard but supports it use and removed enhancement New feature or request labels May 17, 2023
@kriswest kriswest removed the good first issue Good for newcomers label May 8, 2024
@kriswest kriswest changed the title Revive and update or replace AppD reference implementation Create an AppD reference implementation Oct 15, 2024
@amanjmd
Copy link

amanjmd commented Nov 10, 2024

Hi @kriswest ,

I am working on the reference implementation for the App directory in Java and spring boot . I had a query regarding the user channels.

  • Do we need the user channels to be persisted to App directory corresponding to the user .
  • Also , in the documentation here , it was mentioned that an application can be joined to a single user channel . Hence I was not able to understand , what should be the value for the user channel field in the application json response , as it could be different for different user.

@kriswest
Copy link
Contributor Author

Hi @amanjmd user channels are joined at runtime via the Desktop Agent API. The role of the app directory is simply to describe an app's capability of using those channels at runtime, providing details on what context types they'd listen for and broadcast in theinterop.userChannels.listensFor and interop.userChannels.broadcasts elements. At present this information is purely to inform users and developers, however, it could also be useful for an AI to understand app capabilities or for a desktop agent or app directory UI to propose apps that interoperate with other specified apps.

Regarding persistence of selected user channels, this is often a feature of desktop agents when saving a workspace or layout - that's a feature not covered by the fdc3 standard but common in implementations. You wouldn't save the selection to the app directory but to some other store for layouts that includes instances of apps from the directory.

@amanjmd
Copy link

amanjmd commented Nov 12, 2024

hi @kriswest ,

Where in the repo , we will be keeping the reference implementation , considering implementation can be in multiple languages

@kriswest
Copy link
Contributor Author

@amanjmd during the hackathon kickoff we recommended that implementations are first created in their own respository and submitted as part of the hackathon - I'd recommend doing that whether you are contributing as part of the hackathon or independently. The FDC3 project may then move to adopt one or more implementations as reference implementations, perhaps moving them into the FDC3 repo's /toolbox directory or otherwise linking to them in their own repositories.

There is another huge PR in flight at the moment that refactors the structure FDC3 respository which we need to complete before adopting anything - @robmoffat and others are working on that as we speak.

@amanjmd
Copy link

amanjmd commented Nov 13, 2024

hi @kriswest

Sure . I totally understand on the workload this hackathon would have put on .

As suggested , I have done the implementation here

Let me know in case any thing else is required to be added ,or in case my understanding is not aligned with required implementation . Will do the required modifications.

@ThatNinjaGuy
Copy link

ThatNinjaGuy commented Nov 16, 2024

Hi @kriswest

We have created a generic solution for appD. This NodeJs app attempts to give the core functionalities of authentication, authorization, app definition storage, app search and metadata access/update per the definitions of FDC3 enabled applications. To improve the ease of usage, a dashboard has been created to allow users to approve subscription requests to appD, view and edit application details adhering to rhe FDC3 standards. This serves as a management center for AppD.

Our attempt has been to focus on extensibility so that organizations don't need to create a fresh implementation for consumption but can be ready for consumption in a very quick time and add custom features as required with decentralized design.

Reference to our entry through the discussion-> finos/community#331 (comment)

More details can be found at our implementation: https://github.com/kushagraGit/finos_hackathon_citi_vikings

This is part of the #FINOS-Citi Hackathon. Our team members are:
https://github.com/kushagraGit
https://github.com/Yousuf-Ejaz
https://github.com/ThatNinjaGuy

Our original entry was through the discussion but putting it as well for completeness.

@amanjmd
Copy link

amanjmd commented Dec 11, 2024

HI @kriswest

Please let me know , how to initiate the merge process for the reference java Implementation.

@kriswest
Copy link
Contributor Author

Hi @amanjmd apologies for any delay here, @robmoffat and I have both had our heads in a big refactor of the FDC3 repository and implementation of FDC3 for Web Browsers in 2.2. I'll connect with @robmoffat and others in the @finos/fdc3-desktop-agent-maintainers team to take a look next week and get back to you with instructions on where to target a PR + any feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app-directory citi-hackathon help wanted Extra attention is needed needs-pr toolbox Apps or code that isn't part of the standard but supports it use
Projects
None yet
Development

No branches or pull requests

3 participants