Commit 166cdeeb authored by Kourser's avatar Kourser
Browse files

Identifiant de paquet arrêté : eu.cythin.kastell

Le cahier des charges laissait la question ouverte — « publier sous Kourser, ou
sous une entité dédiée ? », à trancher avant M0. Elle est tranchée : sous
Cythin.

Ce n'est pas un réglage
  L'identifiant apparaît dans la demande d'alerte critique instruite par Apple,
  dans les certificats de poussée, et sur chaque fiche de magasin. Il ne se
  change plus après la première soumission : un changement ultérieur ferait une
  seconde application, sans continuité pour ceux qui avaient installé la
  première. Il est donc épinglé par une garantie plutôt que laissé au hasard
  d'une variable d'environnement.

  KASTELL_BUNDLE_ID reste, mais pour un cas précis : une organisation qui
  reprend ce dépôt et publie sa propre application sous son propre compte
  éditeur. Elle ne sert pas à changer d'avis.

Conséquence pratique, à dire plutôt qu'à laisser découvrir : l'application
installée sur un simulateur ou un téléphone d'essai porte l'ancien identifiant.
iOS la traite comme une autre application — l'enrôlement, la file hors ligne et
les dossiers gelés qu'elle contenait ne suivent pas. Il faut la désinstaller et
enrôler à nouveau. C'est sans conséquence aujourd'hui, et ce serait irréparable
après une publication : d'où l'intérêt d'avoir tranché maintenant.

807 garanties.

Restent ouvertes : qui exploite le relais de heurtoir, et l'adresse d'instance
proposée par défaut au premier lancement — aucune aujourd'hui, délibérément.

Signed-off-by: default avatarKourser <contact@kourser.bzh>
Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent b1fe6db5
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ KASTELL_RELAIS_CLE=CHANGEZ-MOI
APNS_CLE=
APNS_CLE_ID=
APNS_EQUIPE_ID=
APNS_PAQUET=bzh.kourser.kastell
APNS_PAQUET=eu.cythin.kastell
APNS_ENVIRONNEMENT=bac_a_sable

# EM-12 : à laisser sur « false » tant qu'Apple n'a pas instruit la demande
+7 −0
Original line number Diff line number Diff line
@@ -399,6 +399,13 @@ export async function verifierApplicationMobile(r: Rapport): Promise<void> {
  const configuration = await readFile(join(mobile, "app.config.ts"), "utf8");
  r.verifie("EM-42", "la révision est inscrite à la construction, pas devinée",
    /git rev-parse HEAD/.test(configuration));
  // L'identifiant de paquet est arrêté et ne se change plus après la première
  // soumission : un changement ultérieur ferait une seconde application, sans
  // continuité pour ceux qui avaient installé la première. Il est donc épinglé
  // ici plutôt que laissé au hasard d'une variable d'environnement.
  r.verifie("EM-44", "l'identifiant de paquet est celui de l'éditeur, arrêté",
    /"eu\.cythin\.kastell"/.test(configuration));

  r.verifie("EM-43", "un plancher de version de système est déclaré",
    /deploymentTarget/.test(configuration) && /minSdkVersion/.test(configuration));

+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ export async function verifierRelais(r: Rapport): Promise<void> {
      => { inject: (o: unknown) => Promise<{ statusCode: number; json: () => unknown }> };
  };

  const reglages = { paquet: "bzh.kourser.kastell", alerteCritique: false };
  const reglages = { paquet: "eu.cythin.kastell", alerteCritique: false };
  const mobilisation: Heurtoir = {
    jeton: "a".repeat(64), plateforme: "ios",
    reference: "9f2c1ad4-6b0e-4a7c-9d31-88e0a15c2f77",
+15 −6
Original line number Diff line number Diff line
@@ -131,14 +131,14 @@ Apple ne remet aucune notification réelle à un simulateur, mais le système sa
en simuler une :

```
xcrun simctl push <udid> bzh.kourser.kastell heurtoir.json
xcrun simctl push <udid> eu.cythin.kastell heurtoir.json
```

avec un fichier de la forme :

```json
{
  "Simulator Target Bundle": "bzh.kourser.kastell",
  "Simulator Target Bundle": "eu.cythin.kastell",
  "aps": { "alert": { "title": "Kastell" }, "sound": "default" },
  "reference": "9f2c1ad4-6b0e-4a7c-9d31-88e0a15c2f77",
  "urgence": "mobilisation"
@@ -173,7 +173,16 @@ d'accueil, et se soumettrait mal à un magasin.

## Décisions ouvertes

L'identifiant de paquet — `bzh.kourser.kastell` — est une valeur de
développement, pas une décision. Il engage l'éditeur, apparaît dans la demande
d'alerte critique et ne se change plus après la première soumission. Le cahier
des charges le note comme décision à trancher avant M0.
L'identifiant de paquet est arrêté : **`eu.cythin.kastell`**. La décision que le
cahier des charges laissait ouverte — « publier sous Kourser, ou sous une entité
dédiée ? » — est tranchée : sous Cythin.

Il ne se change plus après la première soumission aux magasins : un changement
ultérieur ferait une seconde application, sans continuité pour ceux qui avaient
installé la première. La variable `KASTELL_BUNDLE_ID` reste pour un cas précis
— une organisation qui reprend ce dépôt et publie sa propre application sous
son propre compte éditeur — et non pour changer d'avis.

Restent ouvertes : qui exploite le relais de heurtoir, et l'adresse d'instance
proposée par défaut au premier lancement (aucune aujourd'hui, et c'est
délibéré).
+15 −6
Original line number Diff line number Diff line
@@ -35,13 +35,22 @@ function revision(): string | null {
}

/**
 * L'identifiant de paquet engage l'éditeur : il apparaît dans la demande
 * d'alerte critique, dans les certificats de poussée, et il ne se change plus
 * après la première soumission. Le cahier des charges le note comme décision
 * ouverte — « publier sous Kourser, ou sous une entité dédiée ? », à trancher
 * avant M0. Ce qui suit est une valeur de développement, pas une décision.
 * L'identifiant de paquet, arrêté : « eu.cythin.kastell ».
 *
 * Ce n'est plus une valeur de développement. Il engage l'éditeur, apparaît
 * dans la demande d'alerte critique et dans les certificats de poussée, et il
 * ne se change plus après la première soumission aux magasins — un changement
 * ultérieur ferait une seconde application, sans continuité pour ceux qui
 * avaient installé la première.
 *
 * La décision que le cahier des charges laissait ouverte — « publier sous
 * Kourser, ou sous une entité dédiée ? » — est donc tranchée : sous Cythin.
 *
 * La variable d'environnement reste, mais pour un cas précis : une
 * organisation qui reprend ce dépôt et publie sa propre application sous son
 * propre compte éditeur. Elle ne sert pas à changer d'avis.
 */
const paquet = process.env["KASTELL_BUNDLE_ID"]?.trim() || "bzh.kourser.kastell";
const paquet = process.env["KASTELL_BUNDLE_ID"]?.trim() || "eu.cythin.kastell";

const config: ExpoConfig = {
  name: "Kastell",