1.9.0¶
Released: TBD
Highlights¶
- In-app notifications. Admins can compose notifications in the admin panel and target all tenants or a specific set of tenancies; the tenant app reads and displays them in-product (no email).
Added¶
- In-app notification system — see In-App Notifications.
- Admin GraphQL:
notifications,notification,createNotification,updateNotification,deleteNotificationwithAdminNotificationand theNotificationLevelenum (info / success / warning / critical). - Tenant GraphQL:
myNotifications,myUnreadNotificationCount,markNotificationRead,markAllNotificationsRead. - Master-schema models
NotificationandNotificationRead.
Changed¶
- cifras-admin: the sidebar entry that previously pointed the "Notifications" label at the email log is now split — "Notifications" opens the new in-app notifications page and "Emails" keeps the email/reminder log.
Fixed¶
-
Migrations¶
- No alembic migration.
notificationsandnotification_readslive in the master/public database and are created by the master-schema bootstrap (Base.metadata.create_all), consistent with the existingsent_notificationstable — see the feature page's Decisions section.
Frontend impact¶
- Admin (cifras-admin): new Notifications page +
inAppNotificationsApi(create/update/delete/list/get) and a/notificationsroute. Already wired in this release. - Tenant app (product team): on load, call
myUnreadNotificationCountfor a badge andmyNotificationsfor the list; rendertitle/bodystyled bylevel; callmarkNotificationRead/markAllNotificationsReadas the user reads them.
Versioning notes¶
- Minor bump (additive GraphQL surface, no breaking changes). Bumped with
uv run python scripts/bump_version.py 1.9.0 --changelog-stub.