samizdapp / herakles

slaying the hydra of IP/NAT/DNS/TLS/AppStore
2 stars 1 forks source link

SAM-99 UI App abstraction backbone #163

Open JoshuaCWebDeveloper opened 1 year ago

JoshuaCWebDeveloper commented 1 year ago

Metadata:

Original Estimate: 
Priority: High
Epic: SAM-98 WebRTC Transport & Secure Bootstrapping

Create data structure in PWA to hold new app manifests (app manifests should have a list of components with a type and a specification. The existing manifest.manifest property would be converted into a manifest.components[].type === "docker-compose" && manifest.components[].specification === '{version: "1.0".... }'.

The PWA data structure wouldn’t need to include types for the docker-compose component, but would need to type a new ui component. The ui component specification property should be some HTML that gets rendered.

A new /pwa/apps path should render the app launcher (TODO - not a part of this ticket), and a parameterized /pwa/apps/:id path should just render the app with the given id (the app launcher will launch an app by just redirecting to this path).

Hardcode the manifest for pleroma in a sensible place. It should render an iframe that points to /timelines/fediverse (we can use this method: [https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup|https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup|smart-link] to specify the hardcoded iframe using JSX).