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
-
Identity
Eén keer aanmelden voor elke app
Meld je één keer aan met een e-mailcode, een passkey of Google, en elke OS-app weet wie je bent. Wie nieuw is, vraagt met een korte toelichting toegang tot de apps die hij of zij nodig heeft, en een beheerder keurt goed.
-
Webapp
id.asafarim.site
Live
Aanmelden, je account en toegangsaanvragen.
-
Webapp
id.asafarim.site
Live
-
Docs
Je documentatie lezen, notities nemen
Een privélezer voor documentatierepository's: lees de Markdown, houd er studienotities bij en maak van een notitie een GitHub-issue in de repository waar het document bij hoort.
-
Webapp
docs.asafarim.site
Live
Voor wie van een beheerder een Docs-rol kreeg.
-
Webapp
docs.asafarim.site
Live
-
Flow
Workflows die op events draaien
Bouw visueel een workflow, start hem vanuit een OS-event, een webhook of GitHub, en laat mensen een stap goedkeuren of weigeren voor hij verdergaat. Zes connectoren, een versleutelde opslag voor inloggegevens, en ontwerpen die Claude uit een issue schrijft en die nooit vanzelf draaien.
-
Webapp
flow.asafarim.site
Live
Voor wie van een beheerder een Flow-rol kreeg.
-
Webapp
flow.asafarim.site
Live
-
Admin
Het OS beheren
De geïnstalleerde apps en hun toestand, rollen en toekenningen, toegangsaanvragen, en één auditcentrum voor aanmeldingen, toegangsbeslissingen en wijzigingen door beheerders.
-
Webapp
admin.asafarim.site
Alleen personeel
Alleen voor beheerders, daarom hier niet gelinkt.
-
Webapp
admin.asafarim.site
Alleen personeel
-
Notes
De referentie-app
De kleinste app die het contract van begin tot eind toont: een manifest, een eigen database, zichzelf registreren, aanmelden via Identity, rollen toegekend door een beheerder.
-
Voorbeeld
Lokale ontwikkeling
In ontwikkeling
Draait in de ontwikkelomgeving; niet uitgerold.
-
Voorbeeld
Lokale ontwikkeling
In ontwikkeling
Producten van ASafariM
Met hun eigen code en domeinen, in de stijl van het OS; hun projectpagina's worden door het OS geserveerd.
-
IGS-Pharma
Een onlineapotheek voor België
Gebouwd met een Belgische apotheek: een webshop voor producten zonder voorschrift met een apotheker die meekijkt, een back-office voor het apotheekteam en een gratis Android-app. Eigen code en domein, in de stijl van het OS; de projectpagina wordt door het OS geserveerd.
-
Website
igs.asafarim.site
Live
Het project, in het Nederlands, Frans, Duits en Engels, met de privacypagina's van de app.
-
Webshop
igs-pharma.be
Vroege toegang
Gesloten tot de lancering: klanten die de apotheek uitnodigt of goedkeurt, zien hem al.
-
Android-app
Google Play
In test
Bladeren, zoeken, een verpakking scannen en een lijst bijhouden; bestellen gaat via de webshop. In interne test.
-
Back-office
Apotheekpersoneel
Alleen personeel
Catalogus, prijzen, voorraad en terugroepingen, bestellingen, levering en vroege toegang, achter een passkey.
-
Website
igs.asafarim.site
Live
-
Breinhap
Korte studiemissies voor het secundair onderwijs
Een studie-app voor Vlaamse leerlingen in het secundair onderwijs, ontworpen met ADHD en AuDHD in gedachten: missies van 2 tot 6 minuten, altijd in dezelfde vier stappen.
-
Android-introductie
breinhap.asafarim.site
Live
Wat de app is, in het Nederlands en het Engels, met de privacypagina's.
-
Webapp
breinhap.com
In ontwikkeling
Publieke introductie en aanmeld- en registratiepagina's voor volwassenen; missies in de browser zijn er nog niet.
-
Breinhap-beheer
management.breinhap.com
Vroege toegang
Pilot op uitnodiging voor actieve ASafariM-volwassenen met uitdrukkelijke toegang tot Breinhap.
-
Android-app
Google Play
In test
In een gesloten test voor hij voor iedereen opengaat.
-
Android-introductie
breinhap.asafarim.site
Live
-
Observatory
Je ontwikkelwerkruimte in beeld
Bekijk opgeslagen Git-observaties, wijzigingen en geschiedenis van repositories. AI-samenvattingen met bronverwijzingen helpen de cijfers te begrijpen. Elk geregistreerd ASafariM-account kan meekijken; goedgekeurde beheerders kunnen de weergave vernieuwen en samenvattingen maken.
-
Webapp
observatory.asafarim.site
Live
Meld je aan met ASafariM. Kijken kan meteen; beheerfuncties vereisen goedkeuring.
-
Webapp
observatory.asafarim.site
Live
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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
-
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
-
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.
-
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
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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
-
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.
-
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
-
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
-
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.
-
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
-
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
-
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.
-
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.
-
Audit centre
An audit centre
The Admin console shows sign-ins, access decisions and admin changes in one audit centre.
Samengevoegde pull requests: #248
-
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
-
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.
-
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.
-
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
-
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
-
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
-
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
-
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.
Schermafbeeldingen
Gemaakt door Playwright in de end-to-end-testomgeving, niet met de hand getekend.
Roadmap
-
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.
-
P6
Observeerbaarheid
Metrics, traces en logs op één plek met dashboards, alerts op traces en metrics, en een publiek statusbord.
-
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.
-
Flow slice 3
Geplande workflows
Workflows die volgens een schema starten, en nieuwe workflows die eerst als proefdraai lopen.