In ontwikkeling · bijgewerkt op 8 nov 2026

ASafariM OS

Een basisplatform: een besturingssysteem waar apps op aansluiten. Elke app krijgt de voordelen van het OS zonder ze zelf te bouwen.

ASafariM OS is een nieuw systeem met eigen apps. Het is geen migratie van het asafarim.com-platform, dat blijft werken zoals het is.

Heb je toegang? Aanmelden en open dan Docs of Flow, als je account er toegang toe heeft. Nog geen toegang? Meld je aan met je e-mailadres en kies Request connection: een beheerder keurt het goed.

Apps

Wat er op ASafariM OS draait, en de producten die ernaast gebouwd worden: waar je elk ervan vindt, en hoe ver het staat.

Ingebouwd in het OS

Producten van ASafariM

Met hun eigen code en domeinen, in de stijl van het OS; hun projectpagina's worden door het OS geserveerd.

Opgeleverd

Wat er tot nu toe gebouwd en samengevoegd is, fase per fase. Deze lijst is een changelog van de code en staat in het Engels.

  1. P0

    Foundations

    The workspace, CI and the self-describing app contract: an app's manifest, its validator and JSON Schema, and the platform CLI that compiles manifests and checks that the core never imports an app.

    Samengevoegde pull requests: #1, #12, #13

  2. OS-D1

    Local dev environment

    One command starts the whole OS locally: Postgres, Redis, identity, core-api, a dev login stub with seeded users, and a dev gateway in front of every app.

    Samengevoegde pull requests: #29, #38

  3. P2

    Identity

    The OpenID Connect provider for id.asafarim.site, with sign-in delegated to Hub, plus its published container image and production deploy files.

    Samengevoegde pull requests: #23, #41, #46, #47

  4. P3

    Control plane

    core-api's registry, permission catalog and lifecycle; the app SDK and Notes, the first built-in app; the Admin console for apps, roles, grants and the audit log.

    Samengevoegde pull requests: #33, #39

  5. P4.1

    Event bus and bus auth

    NATS JetStream with CloudEvents, an outbox and relay, durable consumers with dedupe and dead letters, and per-app bus permissions checked by core-api when an app connects.

    Samengevoegde pull requests: #50, #52, #54, #56

  6. P4.2

    Event catalog

    Apps upload signed schemas for the events they publish, and the Admin console lists every event type with its publisher, subscribers and schema.

    Samengevoegde pull requests: #65, #67

  7. Remove

    Remove an app

    The last lifecycle step: an admin removes an app, its grants and bus resources are cleaned up, and it can be installed again from scratch.

    Samengevoegde pull requests: #69

  8. P6.1

    Health and status board

    core-api checks every active app's live and ready endpoints from its manifest, and the Admin console shows them on one Status page.

    Samengevoegde pull requests: #84

  9. Landing

    This page is live

    asafarim.site now serves the OS landing page from its own container, deployed on its own with one command and no identity. The placeholder page is gone.

    Samengevoegde pull requests: #74, #98

  10. P6.2

    Traces, request metrics and trace-id logs

    Every app's requests become OpenTelemetry traces and per-route rate, error and duration metrics, with only route patterns leaving the app, and its JSON log lines carry the trace id. One command starts a local collector.

    Samengevoegde pull requests: #96

  11. External apps

    Install an app from its image

    An app built in another repository is installed from its container image: its manifest travels as an image label and is validated, and one command runs it locally or writes its production compose file.

    Samengevoegde pull requests: #90, #105, #107

  12. Docs

    A private documentation reader

    docs.asafarim.site, the second built-in app: it renders documents from their source repository with contents and search, keeps study notes on a part of a document, and is open only to the people the OS grants it to.

    Samengevoegde pull requests: #85, #86, #88, #91, #92, #111

  13. P6 part 2

    Traces across apps

    One request stays one trace through the gateway, core-api and the event bus, and every app flushes its traces and metrics when it stops.

    Samengevoegde pull requests: #112, #113, #114, #117, #125

  14. Retention

    Backup and purge

    Removing an app first backs up its database. The database is dropped only after a retention window, and only if the backup is still there and unchanged. The CLI can remove, purge and list them.

    Samengevoegde pull requests: #115, #116

  15. P7.2

    Manifest review

    Every pull request gets an advisory check that compares an app's manifest with its code: unguarded routes, permissions never checked, and events without a schema or a handler, posted as one comment.

    Samengevoegde pull requests: #118, #121, #124

  16. Sign-in

    Email codes and passkeys

    id.asafarim.site signs people in with a one-time email code or a passkey, built in the OS with no outside provider, and an admin approves new connections.

    Samengevoegde pull requests: #122, #127, #129

  17. P7.4

    Event search

    The Admin console's event catalog answers questions like "which app emits something when an order ships?" by searching event types, apps and schema descriptions.

    Samengevoegde pull requests: #128, #134

  18. Database spans

    Database time in every trace

    Queries from core-api, Notes and Docs show up in their request's trace with the operation and the database name only, never the SQL text or its values.

    Samengevoegde pull requests: #142, #143, #149

  19. Top bar

    App switcher and account menu

    Every OS app has the same top bar: a switcher to each app you can open, and an account menu with your name and Sign out.

    Samengevoegde pull requests: #152, #153, #155, #156, #157

  20. Core in production

    core-api and its own database

    core-api runs in production next to the OS's own Postgres on a private network, started by the deploy only once its encrypted settings are committed. A failed image pull is retried before the deploy gives up.

    Samengevoegde pull requests: #140, #141, #164

  21. Alerts

    Down and recovered alerts

    core-api can send one message to a chat webhook when an app goes down and one when it recovers. It keeps the history on the Status page, and remembers what it already reported across a restart.

    Samengevoegde pull requests: #150, #154, #158, #159, #160, #161, #163

  22. P7.1

    Scaffold a new app

    One command writes a new app with its manifest, sign-in, the OS top bar, a permission-checked example route, health endpoints, telemetry and a test. It passes manifest review with no findings.

    Samengevoegde pull requests: #103, #120, #165

  23. Admin live

    Admin console in production

    The Admin console runs at admin.asafarim.site: admins manage apps, roles, grants and the audit log there.

    Samengevoegde pull requests: #176

  24. CLI

    The OS from the command line

    The platform CLI reads what the Admin console shows: the audit log, every app and its state, one app's permissions and roles, who holds which role, and the event catalog with its keyword search.

    Samengevoegde pull requests: #172, #177, #178, #179, #180, #181, #182

  25. Retention part 2

    Backups checked on demand

    A removed app's backup can be verified at any time, from the command line or from the Admin console's Apps page, before its database is purged.

    Samengevoegde pull requests: #168, #183

  26. Look

    One look for every app

    One light and dark theme with a toggle in every header, data tables that fit a phone, a shared layout for the sign-in pages, and a link to the Admin console for admins.

    Samengevoegde pull requests: #202, #204, #205, #206, #207, #234

  27. Sister sites

    Breinhap and IGS-Pharma

    The OS stack also serves the landing pages of two ventures built in their own repositories, breinhap.asafarim.site and igs.asafarim.site, linked from every OS navigation.

    Samengevoegde pull requests: #209, #210, #212, #219, #224, #228, #229

  28. Legal

    Privacy, cookies and terms

    Privacy, cookie and terms pages linked from every OS footer, and a sitemap, share preview and structured data for this page.

    Samengevoegde pull requests: #215, #233

  29. Sign-in part 2

    Continue with Google and access requests

    id.asafarim.site adds Continue with Google next to email codes and passkeys, with redesigned sign-in pages. A new person asks for access to the apps they need, with a note, and an admin approves.

    Samengevoegde pull requests: #201, #235, #245

  30. Audit centre

    An audit centre

    The Admin console shows sign-ins, access decisions and admin changes in one audit centre.

    Samengevoegde pull requests: #248

  31. Flow

    Flow, the workflow app

    flow.asafarim.site, the third built-in app: workflows that run on events, with approval steps a person approves or rejects. Its first workflow has the Docs app draft a GitHub issue and creates it once someone approves.

    Samengevoegde pull requests: #249, #250, #251, #254, #255, #257, #258

  32. Bus in production

    The event bus in production

    NATS joins the production stack, and core-api, Docs and Flow connect to it when it runs.

    Samengevoegde pull requests: #260, #261

  33. Sessions

    One sign-out everywhere

    An app's session ends when the identity session does, and signing out of an app also ends the id.asafarim.site session. A test fails if the two lifetimes drift apart.

    Samengevoegde pull requests: #186, #187, #252, #256

  34. P7.2 part 2

    A deeper manifest review

    Manifest review catches many more mismatches between an app's manifest and its code: secrets, config and permissions declared but never used or used but never declared; routes, health paths and launcher tiles nothing serves; events and schemas that don't line up; database gaps; and names or ports that clash. The CLI's README lists every finding, and a test keeps the list complete.

    Samengevoegde pull requests: #184, #188, #189, #190, #191, #192, #193, #196, #197, #198, #199, #200, #203, #208, #211, #213, #220, #221, #222, #223, #226, #227, #230, #231, #232, #236, #237, #238, #239, #241, #242, #244, #246, #247, #263, #264, #265

  35. Flow slice 2

    The workflow builder and connectors

    Flow gets a visual builder, a new workflow format and the engine that runs it, webhook and GitHub event triggers, six outbound connectors, and an encrypted credential store behind an allow-list of the hosts it may reach.

    Samengevoegde pull requests: #267, #268, #269, #270, #271, #272

  36. Switcher

    A new app switcher

    An icon-only app switcher in every app, one menu open at a time, and a launcher panel that a host page's styles can't break.

    Samengevoegde pull requests: #288, #289, #290, #291, #292, #303

  37. Flow files and AI

    Workflow files and drafts from issues

    Workflows can be exported, printed and imported as files. Flow can also draft a workflow from a GitHub or GitLab issue with Claude: the draft never runs by itself, and every step that sends data out arrives unconfigured.

    Samengevoegde pull requests: #284, #285, #286, #294, #298, #299

  38. Flow hardening

    Flow, hardened

    Pause all stops work already in flight and fails closed. The public webhook endpoint answers unknown and forged calls the same way and limits floods per source, and credentials stay bound to their settings.

    Samengevoegde pull requests: #308, #309, #310

Schermafbeeldingen

Gemaakt door Playwright in de end-to-end-testomgeving, niet met de hand getekend.

Roadmap

  1. P4

    Events, afgewerkt

    Een alleen-lezen live demo van core-api, Admin en Notes, en TLS en operator-modus voor de eventbus, nu die in productie draait.

  2. P6

    Observeerbaarheid

    Metrics, traces en logs op één plek met dashboards, alerts op traces en metrics, en een publiek statusbord.

  3. P7

    AI-hulp

    AI-hulp waar tekstvergelijking niet ver genoeg kijkt: het manifest van een nieuwe app opstellen, een grondigere manifestreview, semantisch zoeken in events en een alleen-lezen copiloot in de beheerconsole.

  4. Flow slice 3

    Geplande workflows

    Workflows die volgens een schema starten, en nieuwe workflows die eerst als proefdraai lopen.