1. The legacy problem
Companies live with systems that will not disappear overnight: a 15-year ERP, unit portal, sector tool, partner admin. Replacing everything at once is expensive and risky. FormiOS does not require a rewrite: it embeds, authenticates and governs access.
2. Level 1 — Catalog (Factory)
For any https URL. Factory registration with name, icon, category and company. Opens in an internal window. Credentials in the per-user vault. Ideal for systems without SSO that only need a controlled shortcut on the desktop.
3. Level 2 — Token SSO
For group or partner systems that accept a trust endpoint. FormiOS issues a short-lived HMAC token (identity, role, app_key); the remote system validates and opens the session. open_mode stays iframe. Live examples: Tendas, Recifes Admin, Recifes 360, Money, Allnote, Clube HG, Parking, DataMax.
4. Level 3 — Same-origin proxy
When cross-site cookies or headers break the iframe, FormiOS Nginx proxies routes such as /apps/recifes/ or /apps/money/. The browser sees the same origin as the desktop; the legacy system stays on its origin server.
5. Level 4 — API / events (evolution)
Layer to sync data (users, units, status) and webhooks between FormiOS and legacy systems. Not the default for every app: enters when there is mass onboarding, automatic provisioning or desktop indicators. Prefer starting with levels 1–3.
6. Access governance
Who sees what: per-user grants (user_external_apps), admin profile when required, active Factory catalog. Employees do not hunt for links; they receive the environment with authorized systems on the dock and in Formi Apps.
7. Checklist to integrate a legacy system
1) Stable https URL? 2) Token SSO or own login only? 3) Works in iframe (cookies, CSP, X-Frame-Options)? 4) Who may access (everyone, admin only, unit)? 5) Official name and icon for the catalog. With that, deployment picks the right level without surprises.
8. What not to do
Open a critical system in a loose browser tab. Share one password across the team (use per-user vault). Force SSO on software that does not validate tokens. Ignore X-Frame-Options — then use same-origin proxy or align with the vendor.