Skip to content

Commit 28036c1

Browse files
committed
feat(apps): declare cyclefem permissions + consent message
Adds optional `permissions` and `consentMessage` fields to the cyclefeminin bridge entry (schema-compatible, no version bump). Consumers (hds-webapp) that recognize `permissions` gate the Connect flow with a consent dialog and create a scoped app access via accesses.create, then pass the scoped apiEndpoint to the bridge instead of the user's personal token. Consumers that don't recognize these fields ignore them — bridge stays connectable. Permissions cover the 10 canonical streams the importer writes to plus the `cyclefeminin-custom` parent for its 5 custom substreams (mucus notes, day comments, cycle comments, cycle method, temperature context).
1 parent 99bbf41 commit 28036c1

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

apps/list.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,29 @@
5858
"en": "Import your cyclefeminin cycle history into HDS",
5959
"fr": "Importez votre historique de cycle cyclefeminin dans HDS"
6060
},
61+
"consentMessage": {
62+
"en": "The cyclefeminin importer will read your exported cyclefeminin JSON file in your browser and write the cycle, fertility and body-sign events into your HDS account. Nothing is uploaded anywhere else.",
63+
"fr": "L'importateur cyclefeminin lit le fichier JSON exporté depuis cyclefeminin dans votre navigateur et écrit les événements de cycle, de fertilité et de signes corporels dans votre compte HDS. Rien n'est envoyé ailleurs."
64+
},
6165
"icon": {
6266
"type": "emoji",
6367
"value": "🌸"
6468
},
6569
"category": "health",
6670
"provider": "cyclefeminin.net",
71+
"permissions": [
72+
{ "streamId": "cyclefeminin-custom", "defaultName": "Cyclefeminin (imported)", "level": "manage" },
73+
{ "streamId": "body-temperature-basal", "defaultName": "body-temperature-basal", "level": "manage" },
74+
{ "streamId": "body-vulva-bleeding", "defaultName": "body-vulva-bleeding", "level": "manage" },
75+
{ "streamId": "body-vulva-mucus-inspect", "defaultName": "body-vulva-mucus-inspect", "level": "manage" },
76+
{ "streamId": "fertility-cycles-start", "defaultName": "fertility-cycles-start", "level": "manage" },
77+
{ "streamId": "fertility-cycles-peak-day", "defaultName": "fertility-cycles-peak-day", "level": "manage" },
78+
{ "streamId": "fertility-cycles-fertile-window", "defaultName": "fertility-cycles-fertile-window", "level": "manage" },
79+
{ "streamId": "fertility-ttc-tta", "defaultName": "fertility-ttc-tta", "level": "manage" },
80+
{ "streamId": "fertility-sexual-activity", "defaultName": "fertility-sexual-activity", "level": "manage" },
81+
{ "streamId": "symptom-gastrointestinal-cramps", "defaultName": "symptom-gastrointestinal-cramps", "level": "manage" },
82+
{ "streamId": "symptom-sleep-insomnia", "defaultName": "symptom-sleep-insomnia", "level": "manage" }
83+
],
6784
"hook": {
6885
"open": {
6986
"url": "https://healthdatasafe.github.io/bridge-cyclefeminin-net/",

0 commit comments

Comments
 (0)