Replies: 5 comments 4 replies
|
@subbaksh - We need some more detail on the parent app binding with external apps using microfrontends. |
1 reply
|
@subbaksh - How do we update the apps agentically and deploy via runtime? |
1 reply
|
@subbaksh - Suggestion to call it "Agentic apps"? |
1 reply
|
A pre-requisite for having a standardized API for apps is CAS |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
CAIPE External Apps
Discussion proposal
Proposal
CAIPE should support externally developed web applications as first-class UI
surfaces. An app would run as its own microservice, potentially from a separate
repository, while appearing inside CAIPE as an app or tab.
CAIPE would remain the host and security boundary. It would own app registration,
navigation, authentication, authorization, proxying, theme and user context, and
access to CAIPE agents. The app would own its UI, domain APIs, and data.
This gives teams a supported extension point without requiring them to fork the
CAIPE frontend or depend on internal React components.
Why this is worth doing
Dashboards, operational workbenches, reports, and domain tools are often better
expressed as focused applications than as chat alone. Today they must either:
experience.
platform boundary.
The proposed middle ground is independently owned code with centrally governed
integration.
Architecture in one picture
The important boundary is not the iframe. The important boundary is that CAIPE
continues to mediate identity, policy, and agent access while the external
service remains responsible for its own domain behavior.
Responsibilities
The platform contracts we need
This proposal needs a small number of stable contracts. Detailed manifests,
payloads, schemas, and endpoint definitions should be defined in the next design
notes rather than as part of this discussion.
Host context
The browser app needs a small CAIPE SDK providing:
nord.This is a browser bridge, not access to CAIPE session state or credentials.
App identity
CAIPE authenticates and authorizes requests before proxying them to the app with
a short-lived identity bound to the user and app. The app verifies that identity;
browser JavaScript never receives it. Public-key verification avoids sharing a
platform-wide signing secret with independently owned apps.
App resources and CAS
Apps describe the resource kinds they own, such as reports, repositories, jobs,
or artifacts. CAIPE maps them into a generic, app-namespaced model rather than
changing OpenFGA for every app.
CAS remains the policy decision point. Enforcement remains with the component
serving the resource:
UI checks improve the experience; the serving API makes the authoritative check.
Authorization failures and CAS outages fail closed.
Agents
Apps consume CAIPE agents, not LLMs. CAIPE retains models, prompts, tools,
credentials, and execution policy.
The browser SDK should support:
The list is the intersection of agents allowed for the app and for the user, and
contains no internal agent configuration. The MVP supports browser calls using
the user's CAIPE session; server-side agent delegation is deferred.
How a separate microservice participates
The service needs no CAIPE cookie, user OIDC token, direct OpenFGA access, or
direct Dynamic Agents access. This preserves independent deployment while
keeping policy and audit consistent.
How
dashboard-appsfitsThe generic App platform and
dashboard-appsare related but orthogonal. Theplatform defines how any external app integrates;
dashboard-appspackages aset of first-party dashboard experiences.
A shared
dashboard-appsDeployment can serve Weather, FinOps, and OSSRepository Management modules. CAIPE should still register each module as a
separate app with its own route, visibility, health, resource kinds, and allowed
agents. They may point to the same service origin today and separate into
different services later without changing the platform contract.
An optional MCP service can expose typed dashboard actions through AgentGateway,
and long-running analysis can use workers or Jobs. Neither is a generic App
platform requirement. This separation preserves both options:
Security position
The MVP is for explicitly installed applications inside the deployment trust
boundary, not arbitrary marketplace code. Even within that boundary:
A less-trusted sandboxed or cross-origin mode can follow later.
Road to an MVP
mainThe MVP is complete when a second app can be registered without modifying CAIPE
source, proving that the host contains no app-specific integration logic.
Next design steps
After agreeing the overall direction, define the following contracts as separate,
short design notes:
References
All reactions