# API : meta

1 opérations REST du groupe meta.

Base : `/api/v1`. [Conventions](/documentation/api-conventions/) · [Toutes les ressources](/documentation/api-reference/)

- GET /meta : Bootstrap metadata-driven de l'instance (ADR-104)
## GET /meta

```json
{
  "summary": "Bootstrap metadata-driven de l'instance (ADR-104)",
  "description": "Sans Authorization : méta PUBLIQUE (identité visuelle du login + contrat de version) - aucune donnée métier, pas de liste de modules. Avec un Bearer valide (session utilisateur §2bis ou token d'app) : méta COMPLÈTE (modules actifs, branding et labels runtime, capacités, entités). Un Bearer invalide répond 401 - jamais de dégradation silencieuse vers la forme publique.",
  "tags": [
    "meta"
  ],
  "security": [
    {
      "oauth2": []
    },
    {
      "userSession": []
    }
  ],
  "responses": {
    "200": {
      "description": "Méta publique (anonyme) ou complète (authentifié)",
      "content": {
        "application/json": {
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nom de l'instance (productName)"
                  },
                  "version": {
                    "type": "string",
                    "description": "Version produit de l'instance (semver ADR-097)"
                  },
                  "minAppVersion": {
                    "type": "string",
                    "description": "Version minimale de l'app mobile supportée - l'app compare et dégrade explicitement"
                  },
                  "logo": {
                    "type": "string"
                  },
                  "logoOnBrand": {
                    "type": "string"
                  },
                  "colors": {
                    "type": "object",
                    "properties": {
                      "primary": {
                        "type": "string"
                      },
                      "primaryAccent": {
                        "type": "string"
                      },
                      "soft": {
                        "type": "string"
                      },
                      "dark": {
                        "type": "string"
                      },
                      "background": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "primary",
                      "primaryAccent",
                      "soft",
                      "dark",
                      "background"
                    ],
                    "additionalProperties": false
                  },
                  "sso": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "google",
                        "microsoft"
                      ]
                    },
                    "description": "Providers SSO actifs sur l'instance (T-762) - le login n'affiche que ceux-là"
                  },
                  "auth": {
                    "type": "object",
                    "properties": {
                      "loginUrl": {
                        "type": "string",
                        "description": "Entrée de la connexion mobile par le navigateur système (T-1020, ADR-141 D5) : GET <loginUrl>?redirect=<scheme de retour de l'app> ; au retour, POST /api/auth/handoff/mobile { token }"
                      }
                    },
                    "required": [
                      "loginUrl"
                    ],
                    "additionalProperties": false,
                    "description": "Connexion de l'app : aucun mot de passe, passkey ou code d'application dans le navigateur système"
                  }
                },
                "required": [
                  "name",
                  "version",
                  "minAppVersion",
                  "logo",
                  "logoOnBrand",
                  "colors",
                  "sso",
                  "auth"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nom de l'instance (productName)"
                  },
                  "version": {
                    "type": "string",
                    "description": "Version produit de l'instance (semver ADR-097)"
                  },
                  "minAppVersion": {
                    "type": "string",
                    "description": "Version minimale de l'app mobile supportée - l'app compare et dégrade explicitement"
                  },
                  "logo": {
                    "type": "string"
                  },
                  "logoOnBrand": {
                    "type": "string"
                  },
                  "colors": {
                    "type": "object",
                    "properties": {
                      "primary": {
                        "type": "string"
                      },
                      "primaryAccent": {
                        "type": "string"
                      },
                      "soft": {
                        "type": "string"
                      },
                      "dark": {
                        "type": "string"
                      },
                      "background": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "primary",
                      "primaryAccent",
                      "soft",
                      "dark",
                      "background"
                    ],
                    "additionalProperties": false
                  },
                  "sso": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "google",
                        "microsoft"
                      ]
                    },
                    "description": "Providers SSO actifs sur l'instance (T-762) - le login n'affiche que ceux-là"
                  },
                  "auth": {
                    "type": "object",
                    "properties": {
                      "loginUrl": {
                        "type": "string"
                      },
                      "loginMethod": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "passkey",
                              "passkey_or_totp"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Méthode de connexion du compte (T-1017, ADR-141 D3) : passkey (défaut) ou passkey_or_totp (mode élargi posé par un admin - l'app propose alors la gestion du code d'application). Null pour une app connectée."
                      }
                    },
                    "required": [
                      "loginUrl",
                      "loginMethod"
                    ],
                    "additionalProperties": false
                  },
                  "logoCompact": {
                    "type": "string"
                  },
                  "locale": {
                    "type": "string"
                  },
                  "currency": {
                    "type": "string"
                  },
                  "labels": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "singular": {
                          "type": "string"
                        },
                        "plural": {
                          "type": "string"
                        },
                        "all": {
                          "type": "string"
                        },
                        "create": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "singular",
                        "plural"
                      ],
                      "additionalProperties": false
                    },
                    "description": "Labels du glossaire (cycle, businessUnit, resource, objets renommables)"
                  },
                  "fieldLabels": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  },
                  "modules": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "boolean"
                    },
                    "description": "Modules actifs de l'instance - la navigation de l'app s'en déduit"
                  },
                  "capabilities": {
                    "type": "object",
                    "properties": {
                      "pdfDownload": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "pdfDownload"
                    ],
                    "additionalProperties": false
                  },
                  "businessUnits": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "name": {
                          "type": "string"
                        },
                        "shortName": {
                          "type": "string"
                        },
                        "color": {
                          "type": "string"
                        },
                        "logo": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "shortName",
                        "color",
                        "logo"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "quoteLossReasons": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Motifs de perte d'un devis de l'organisation (#651), dans l'ordre des réglages, « Autre » compris : la transition vers refused exige l'un d'eux en lossReason."
                  }
                },
                "required": [
                  "name",
                  "version",
                  "minAppVersion",
                  "logo",
                  "logoOnBrand",
                  "colors",
                  "sso",
                  "auth",
                  "logoCompact",
                  "locale",
                  "currency",
                  "labels",
                  "fieldLabels",
                  "modules",
                  "capabilities",
                  "businessUnits",
                  "quoteLossReasons"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      }
    },
    "default": {
      "description": "Erreur - enveloppe problem+json (RFC 9457)",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
