Applications
Ce qui tourne sur ASafariM OS, et les produits construits à côté : où trouver chacun, et où il en est.
Intégrées à l’OS
-
Identity
Une seule connexion pour chaque application
Connectez-vous une fois avec un code par e-mail, une clé d’accès ou Google, et chaque application de l’OS sait qui vous êtes. Une nouvelle personne demande l’accès aux applications dont elle a besoin, avec un mot d’explication, et un administrateur approuve.
-
Application web
id.asafarim.site
En ligne
Connexion, votre compte et les demandes d’accès.
-
Application web
id.asafarim.site
En ligne
-
Docs
Lire votre documentation, prendre des notes
Un lecteur privé pour les dépôts de documentation : lisez le Markdown, gardez-y des notes d’étude et transformez une note en issue GitHub dans le dépôt auquel appartient le document.
-
Application web
docs.asafarim.site
En ligne
Pour les personnes à qui un administrateur a donné un rôle Docs.
-
Application web
docs.asafarim.site
En ligne
-
Flow
Des workflows déclenchés par des événements
Construisez un workflow visuellement, lancez-le depuis un événement de l’OS, un webhook ou GitHub, et laissez des personnes approuver ou refuser une étape avant qu’il continue. Six connecteurs, un coffre chiffré pour les identifiants, et des brouillons rédigés par Claude à partir d’une issue, qui ne s’exécutent jamais d’eux-mêmes.
-
Application web
flow.asafarim.site
En ligne
Pour les personnes à qui un administrateur a donné un rôle Flow.
-
Application web
flow.asafarim.site
En ligne
-
Admin
Piloter l’OS
Les applications installées et leur état, les rôles et attributions, les demandes d’accès, et un seul centre d’audit pour les connexions, les décisions d’accès et les modifications des administrateurs.
-
Application web
admin.asafarim.site
Personnel uniquement
Réservée aux administrateurs, donc pas de lien ici.
-
Application web
admin.asafarim.site
Personnel uniquement
-
Notes
L’application de référence
La plus petite application qui montre le contrat de bout en bout : un manifeste, sa propre base de données, son enregistrement, la connexion via Identity, des rôles attribués par un administrateur.
-
Exemple
Développement local
En développement
Tourne dans l’environnement de développement ; pas déployée.
-
Exemple
Développement local
En développement
Produits créés par ASafariM
Avec leur propre code et leurs propres domaines, dans le style de l’OS ; leurs pages de projet sont servies par l’OS.
-
IGS-Pharma
Une pharmacie en ligne pour la Belgique
Construite avec une pharmacie belge : un webshop de produits sans ordonnance avec un pharmacien dans la boucle, un back-office pour l’équipe de la pharmacie et une application Android gratuite. Son propre code et son propre domaine, dans le style de l’OS ; la page du projet est servie par l’OS.
-
Site web
igs.asafarim.site
En ligne
Le projet, en néerlandais, français, allemand et anglais, avec les pages de confidentialité de l’application.
-
Webshop
igs-pharma.be
Accès anticipé
Fermé jusqu’au lancement : les clients que la pharmacie invite ou approuve le voient déjà.
-
Application Android
Google Play
En test
Parcourir, chercher, scanner un emballage et tenir une liste ; les commandes passent par le webshop. En test interne.
-
Back-office
Personnel de la pharmacie
Personnel uniquement
Catalogue, prix, stock et rappels, commandes, livraison et accès anticipé, derrière une clé d’accès.
-
Site web
igs.asafarim.site
En ligne
-
Breinhap
De courtes missions d’étude pour le secondaire
Une application d’étude pour les élèves du secondaire en Flandre, conçue en pensant au TDAH et à l’AuDHD : des missions de 2 à 6 minutes, toujours dans les mêmes quatre étapes.
-
Présentation Android
breinhap.asafarim.site
En ligne
Ce qu’est l’application, en néerlandais et en anglais, avec ses pages de confidentialité.
-
Application web
breinhap.com
En développement
Présentation publique et pages de connexion et d’inscription pour les adultes ; les missions dans le navigateur ne sont pas encore disponibles.
-
Gestion Breinhap
management.breinhap.com
Accès anticipé
Pilote sur invitation pour des adultes ASafariM actifs avec un accès explicite à Breinhap.
-
Application Android
Google Play
En test
En test fermé avant son ouverture à tous.
-
Présentation Android
breinhap.asafarim.site
En ligne
-
Observatory
Votre espace de développement en perspective
Explorez les observations Git enregistrées, les changements et l’historique des dépôts. Les résumés IA avec références expliquent les mesures. Tout compte ASafariM inscrit peut consulter ; les administrateurs approuvés peuvent actualiser la vue et générer des résumés.
-
Application web
observatory.asafarim.site
En ligne
Connectez-vous avec ASafariM. La consultation est incluse ; les outils d’administration nécessitent une approbation.
-
Application web
observatory.asafarim.site
En ligne
Livré
Ce qui est construit et fusionné jusqu’ici, phase par phase. Cette liste est un journal des modifications du code, en anglais.
-
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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Pull requests fusionnées : #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.
Captures d’écran
Prises par Playwright dans l’environnement de test de bout en bout, pas dessinées à la main.
Feuille de route
-
P4
Événements, terminés
Une démo en direct en lecture seule de core-api, Admin et Notes, et le TLS et le mode opérateur pour le bus d’événements, maintenant qu’il tourne en production.
-
P6
Observabilité
Métriques, traces et journaux au même endroit avec des tableaux de bord, des alertes sur les traces et les métriques, et un tableau de statut public.
-
P7
Aide de l’IA
De l’aide de l’IA là où la comparaison de texte ne voit pas : rédiger le manifeste d’une nouvelle application, une revue de manifeste plus poussée, une recherche sémantique dans les événements et un copilote en lecture seule dans la console d’administration.
-
Flow slice 3
Workflows planifiés
Des workflows qui démarrent selon un calendrier, et de nouveaux workflows qui s’exécutent d’abord à blanc.