ujusum:3-codage:1-repository:3-spec-open-api
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| ujusum:3-codage:1-repository:3-spec-open-api [2026/06/08 00:56] – admin | ujusum:3-codage:1-repository:3-spec-open-api [2026/06/08 00:59] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 7828: | Ligne 7828: | ||
| ---- | ---- | ||
| - | ====== | + | ====== |
| - | ===== Phase 3-A.10 | + | ===== Objectif |
| - | OpenAPI Revenue Management & Business Intelligence | + | Construire la couche décisionnelle avancée de la plateforme. |
| + | |||
| + | Cette phase couvre : | ||
| < | < | ||
| - | Pricing Rules | + | Sprint 10 |
| - | Dynamic Prices | + | Reporting & Business Intelligence |
| - | Revenue Forecasts | + | Sprint 13 |
| - | Revenue Simulations | + | Prévisions IA |
| - | Competitor Snapshots | + | Sprint 17 |
| - | Market Demand | + | Revenue Management |
| - | Dashboards | + | Sprint 20 |
| - | Analytics | + | Enterprise |
| </ | </ | ||
| - | Cette phase couvrira | + | Elle permet |
| < | < | ||
| - | Sprint 10 | + | Tarification dynamique |
| - | Reporting & BI | + | Yield Management |
| - | Sprint 13 | + | Prévisions |
| - | Prévisions IA | + | Simulations |
| - | Sprint 17 | + | Benchmark concurrence |
| - | Revenue Management | + | KPI avancés |
| + | |||
| + | Pilotage financier | ||
| </ | </ | ||
| - | et ajoutera environ | + | ---- |
| + | |||
| + | ====== Tags OpenAPI ====== | ||
| + | |||
| + | <code yaml> | ||
| + | tags: | ||
| + | |||
| + | - name: PricingRules | ||
| + | |||
| + | - name: DynamicPrices | ||
| + | |||
| + | - name: RevenueForecasts | ||
| + | |||
| + | - name: RevenueSimulations | ||
| + | |||
| + | - name: CompetitorSnapshots | ||
| + | |||
| + | - name: MarketDemand | ||
| + | |||
| + | - name: Dashboards | ||
| + | |||
| + | - name: Analytics | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Pricing Rules ====== | ||
| + | |||
| + | ===== PricingRule ===== | ||
| + | |||
| + | <code yaml> | ||
| + | PricingRule: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | format: uuid | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | priority: | ||
| + | type: integer | ||
| + | |||
| + | active: | ||
| + | type: boolean | ||
| + | |||
| + | conditions: | ||
| + | type: object | ||
| + | |||
| + | actions: | ||
| + | type: object | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| < | < | ||
| - | 80 endpoints supplémentaires | + | GET / |
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | |||
| + | DELETE / | ||
| </ | </ | ||
| + | ---- | ||
| + | |||
| + | ===== Activation ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Simulation ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | < | ||
| + | Occupation > 80% | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | +15% | ||
| + | |||
| + | ---------------- | ||
| + | |||
| + | Weekend | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | +10% | ||
| + | |||
| + | ---------------- | ||
| + | |||
| + | Haute saison | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | +25% | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Dynamic Prices ====== | ||
| + | |||
| + | ===== DynamicPrice ===== | ||
| + | |||
| + | <code yaml> | ||
| + | DynamicPrice: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | propertyId: | ||
| + | type: string | ||
| + | |||
| + | pricingDate: | ||
| + | type: string | ||
| + | format: date | ||
| + | |||
| + | basePrice: | ||
| + | type: number | ||
| + | |||
| + | adjustedPrice: | ||
| + | type: number | ||
| + | |||
| + | demandFactor: | ||
| + | type: number | ||
| + | |||
| + | competitorFactor: | ||
| + | type: number | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Calcul ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Recalcul ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Recherche ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | ? | ||
| + | |||
| + | ? | ||
| + | |||
| + | ? | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Revenue Forecasts ====== | ||
| + | |||
| + | ===== RevenueForecast ===== | ||
| + | |||
| + | <code yaml> | ||
| + | RevenueForecast: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | propertyId: | ||
| + | type: string | ||
| + | |||
| + | forecastPeriodStart: | ||
| + | type: string | ||
| + | format: date | ||
| + | |||
| + | forecastPeriodEnd: | ||
| + | type: string | ||
| + | format: date | ||
| + | |||
| + | expectedRevenue: | ||
| + | type: number | ||
| + | |||
| + | expectedOccupancy: | ||
| + | type: number | ||
| + | |||
| + | confidenceLevel: | ||
| + | type: number | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Génération ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Prévisions ===== | ||
| + | |||
| + | < | ||
| + | 7 jours | ||
| + | |||
| + | 30 jours | ||
| + | |||
| + | 90 jours | ||
| + | |||
| + | 180 jours | ||
| + | |||
| + | 365 jours | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Revenue Simulations ====== | ||
| + | |||
| + | ===== RevenueSimulation ===== | ||
| + | |||
| + | <code yaml> | ||
| + | RevenueSimulation: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | projectedRevenue: | ||
| + | type: number | ||
| + | |||
| + | projectedOccupancy: | ||
| + | type: number | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exécuter ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Comparer ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemple ===== | ||
| + | |||
| + | < | ||
| + | Prix +10% | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | Occupation -3% | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | CA +6% | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Competitor Snapshots ====== | ||
| + | |||
| + | ===== CompetitorSnapshot ===== | ||
| + | |||
| + | <code yaml> | ||
| + | CompetitorSnapshot: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | propertyId: | ||
| + | type: string | ||
| + | |||
| + | competitorName: | ||
| + | type: string | ||
| + | |||
| + | nightlyRate: | ||
| + | type: number | ||
| + | |||
| + | occupancy: | ||
| + | type: number | ||
| + | |||
| + | snapshotDate: | ||
| + | type: string | ||
| + | format: date | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Benchmark ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Réponse ===== | ||
| + | |||
| + | <code yaml> | ||
| + | CompetitorBenchmark: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | marketAverage: | ||
| + | type: number | ||
| + | |||
| + | propertyAverage: | ||
| + | type: number | ||
| + | |||
| + | variance: | ||
| + | type: number | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Market Demand ====== | ||
| + | |||
| + | ===== MarketDemand ===== | ||
| + | |||
| + | <code yaml> | ||
| + | MarketDemand: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | regionCode: | ||
| + | type: string | ||
| + | |||
| + | demandIndex: | ||
| + | type: number | ||
| + | |||
| + | occupancyIndex: | ||
| + | type: number | ||
| + | |||
| + | averageDailyRate: | ||
| + | type: number | ||
| + | |||
| + | demandDate: | ||
| + | type: string | ||
| + | format: date | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Tendances ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Prévisions ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Revenue Dashboard ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | RevPAR | ||
| + | |||
| + | ADR | ||
| + | |||
| + | Occupancy Rate | ||
| + | |||
| + | Revenue | ||
| + | |||
| + | Forecast Accuracy | ||
| + | |||
| + | Average Stay | ||
| + | |||
| + | Cancellation Rate | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Réponse ===== | ||
| + | |||
| + | <code yaml> | ||
| + | RevenueDashboard: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | revenue: | ||
| + | type: number | ||
| + | |||
| + | occupancyRate: | ||
| + | type: number | ||
| + | |||
| + | averageDailyRate: | ||
| + | type: number | ||
| + | |||
| + | revPar: | ||
| + | type: number | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Property Analytics ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | Occupation | ||
| + | |||
| + | Revenus | ||
| + | |||
| + | Tarif moyen | ||
| + | |||
| + | Réservations | ||
| + | |||
| + | Annulations | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Owner Analytics ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | Revenus | ||
| + | |||
| + | Biens | ||
| + | |||
| + | Occupation | ||
| + | |||
| + | Commissions | ||
| + | |||
| + | Paiements | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Reservation Analytics ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Filtres ===== | ||
| + | |||
| + | < | ||
| + | from | ||
| + | |||
| + | to | ||
| + | |||
| + | propertyId | ||
| + | |||
| + | ownerId | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Financial Analytics ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | Revenue | ||
| + | |||
| + | Facturation | ||
| + | |||
| + | Paiements | ||
| + | |||
| + | Remboursements | ||
| + | |||
| + | Commissions | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Forecast Analytics ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Réponse ===== | ||
| + | |||
| + | <code yaml> | ||
| + | ForecastAnalytics: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | next30Days: | ||
| + | type: number | ||
| + | |||
| + | next90Days: | ||
| + | type: number | ||
| + | |||
| + | next365Days: | ||
| + | type: number | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Exports ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Formats ===== | ||
| + | |||
| + | < | ||
| + | CSV | ||
| + | |||
| + | XLSX | ||
| + | |||
| + | |||
| + | |||
| + | JSON | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Paramètres ===== | ||
| + | |||
| + | < | ||
| + | dashboard | ||
| + | |||
| + | from | ||
| + | |||
| + | to | ||
| + | |||
| + | format | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== IA & Revenue Management ====== | ||
| + | |||
| + | ===== Suggestions ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Types ===== | ||
| + | |||
| + | < | ||
| + | PRICE_INCREASE | ||
| + | |||
| + | PRICE_DECREASE | ||
| + | |||
| + | PROMOTION | ||
| + | |||
| + | MINIMUM_STAY | ||
| + | |||
| + | AVAILABILITY_OPTIMIZATION | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Validation ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Reporting Exécutif ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | CA Total | ||
| + | |||
| + | CA Prévisionnel | ||
| + | |||
| + | Taux Occupation | ||
| + | |||
| + | Top Biens | ||
| + | |||
| + | Top Agences | ||
| + | |||
| + | Top Propriétaires | ||
| + | |||
| + | Taux Conversion | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Permissions RBAC ====== | ||
| + | |||
| + | ===== Revenue ===== | ||
| + | |||
| + | < | ||
| + | revenue.read | ||
| + | |||
| + | revenue.manage | ||
| + | |||
| + | revenue.forecast | ||
| + | |||
| + | revenue.simulate | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Analytics ===== | ||
| + | |||
| + | < | ||
| + | analytics.read | ||
| + | |||
| + | analytics.export | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Reporting ===== | ||
| + | |||
| + | < | ||
| + | reporting.read | ||
| + | |||
| + | reporting.executive | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Volume API ====== | ||
| + | |||
| + | Cette phase ajoute : | ||
| + | |||
| + | < | ||
| + | ≈ 82 endpoints | ||
| + | |||
| + | ≈ 32 schémas | ||
| + | |||
| + | ≈ 8 tags Swagger | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Cumul OpenAPI ====== | ||
| + | |||
| + | Après Phase 3-A.10 : | ||
| + | |||
| + | < | ||
| + | ≈ 677 endpoints | ||
| + | |||
| + | ≈ 235 schémas | ||
| + | |||
| + | ≈ 77 tags | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Phase 3-A.11 — OpenAPI Security, Compliance & Enterprise ====== | ||
| + | |||
| + | ===== Objectif ===== | ||
| + | |||
| + | Construire la couche Enterprise Security de la plateforme. | ||
| + | |||
| + | Cette phase couvre : | ||
| + | |||
| + | < | ||
| + | Sprint 19 | ||
| + | |||
| + | Gouvernance & Conformité | ||
| + | |||
| + | Enterprise Security | ||
| + | |||
| + | RGPD | ||
| + | |||
| + | ISO 27001 | ||
| + | |||
| + | SOC2 | ||
| + | |||
| + | OWASP ASVS | ||
| + | </ | ||
| + | |||
| + | Elle permet : | ||
| + | |||
| + | < | ||
| + | MFA | ||
| + | |||
| + | SSO | ||
| + | |||
| + | Consentements | ||
| + | |||
| + | RGPD | ||
| + | |||
| + | Gestion des risques | ||
| + | |||
| + | Classification des données | ||
| + | |||
| + | Politiques de sécurité | ||
| + | |||
| + | Incidents | ||
| + | |||
| + | Audits | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Tags OpenAPI ====== | ||
| + | |||
| + | <code yaml> | ||
| + | tags: | ||
| + | |||
| + | - name: MFA | ||
| + | |||
| + | - name: Identity | ||
| + | |||
| + | - name: Sessions | ||
| + | |||
| + | - name: Consents | ||
| + | |||
| + | - name: Privacy | ||
| + | |||
| + | - name: Risks | ||
| + | |||
| + | - name: SecurityIncidents | ||
| + | |||
| + | - name: ComplianceAudits | ||
| + | |||
| + | - name: DataClassification | ||
| + | |||
| + | - name: RetentionPolicies | ||
| + | |||
| + | - name: SecurityPolicies | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== MFA ====== | ||
| + | |||
| + | ===== MfaConfiguration ===== | ||
| + | |||
| + | <code yaml> | ||
| + | MfaConfiguration: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | enabled: | ||
| + | type: boolean | ||
| + | |||
| + | method: | ||
| + | $ref: '#/ | ||
| + | |||
| + | backupCodesRemaining: | ||
| + | type: integer | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== MfaMethod ===== | ||
| + | |||
| + | <code yaml> | ||
| + | MfaMethod: | ||
| + | |||
| + | type: string | ||
| + | |||
| + | enum: | ||
| + | |||
| + | - TOTP | ||
| + | |||
| + | |||
| + | |||
| + | - SMS | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== QR Code ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Identity & SSO ====== | ||
| + | |||
| + | ===== IdentityProvider ===== | ||
| + | |||
| + | <code yaml> | ||
| + | IdentityProvider: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | providerType: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | enabled: | ||
| + | type: boolean | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Types ===== | ||
| + | |||
| + | < | ||
| + | SAML | ||
| + | |||
| + | OIDC | ||
| + | |||
| + | AZURE_AD | ||
| + | |||
| + | OKTA | ||
| + | |||
| + | AUTH0 | ||
| + | |||
| + | KEYCLOAK | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== SAML ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== OIDC ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Sessions ====== | ||
| + | |||
| + | ===== ActiveSession ===== | ||
| + | |||
| + | <code yaml> | ||
| + | ActiveSession: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | ipAddress: | ||
| + | type: string | ||
| + | |||
| + | country: | ||
| + | type: string | ||
| + | |||
| + | userAgent: | ||
| + | type: string | ||
| + | |||
| + | createdAt: | ||
| + | type: string | ||
| + | format: date-time | ||
| + | |||
| + | lastActivityAt: | ||
| + | type: string | ||
| + | format: date-time | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /sessions | ||
| + | |||
| + | GET / | ||
| + | |||
| + | DELETE / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Consents ====== | ||
| + | |||
| + | ===== Consent ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Consent: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | consentType: | ||
| + | type: string | ||
| + | |||
| + | granted: | ||
| + | type: boolean | ||
| + | |||
| + | grantedAt: | ||
| + | type: string | ||
| + | format: date-time | ||
| + | |||
| + | version: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Consent Types ===== | ||
| + | |||
| + | < | ||
| + | GDPR | ||
| + | |||
| + | COOKIES | ||
| + | |||
| + | EMAIL_MARKETING | ||
| + | |||
| + | SMS_MARKETING | ||
| + | |||
| + | PROFILING | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /consents | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Historique ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Privacy ====== | ||
| + | |||
| + | ===== Export RGPD ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Request ===== | ||
| + | |||
| + | <code yaml> | ||
| + | PrivacyExportRequest: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | format: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Formats ===== | ||
| + | |||
| + | < | ||
| + | ZIP | ||
| + | |||
| + | JSON | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Droit à l' | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Droit à la rectification ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Droit à la limitation ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Registre traitements ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Risk Management ====== | ||
| + | |||
| + | ===== Risk ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Risk: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | title: | ||
| + | type: string | ||
| + | |||
| + | probability: | ||
| + | type: integer | ||
| + | |||
| + | impact: | ||
| + | type: integer | ||
| + | |||
| + | score: | ||
| + | type: integer | ||
| + | |||
| + | level: | ||
| + | $ref: '#/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== RiskLevel ===== | ||
| + | |||
| + | <code yaml> | ||
| + | RiskLevel: | ||
| + | |||
| + | type: string | ||
| + | |||
| + | enum: | ||
| + | |||
| + | - LOW | ||
| + | |||
| + | - MEDIUM | ||
| + | |||
| + | - HIGH | ||
| + | |||
| + | - CRITICAL | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Évaluation ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Traitement ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Security Incidents ====== | ||
| + | |||
| + | ===== SecurityIncident ===== | ||
| + | |||
| + | <code yaml> | ||
| + | SecurityIncident: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | title: | ||
| + | type: string | ||
| + | |||
| + | severity: | ||
| + | type: string | ||
| + | |||
| + | status: | ||
| + | type: string | ||
| + | |||
| + | detectedAt: | ||
| + | type: string | ||
| + | format: date-time | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Workflow ===== | ||
| + | |||
| + | < | ||
| + | Detected | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | Qualified | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | Investigating | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | Resolved | ||
| + | |||
| + | ↓ | ||
| + | |||
| + | Closed | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Détection ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Compliance Audits ====== | ||
| + | |||
| + | ===== ComplianceAudit ===== | ||
| + | |||
| + | <code yaml> | ||
| + | ComplianceAudit: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | auditType: | ||
| + | type: string | ||
| + | |||
| + | status: | ||
| + | type: string | ||
| + | |||
| + | executedAt: | ||
| + | type: string | ||
| + | format: date-time | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Types ===== | ||
| + | |||
| + | < | ||
| + | GDPR | ||
| + | |||
| + | ISO27001 | ||
| + | |||
| + | SOC2 | ||
| + | |||
| + | NIS2 | ||
| + | |||
| + | OWASP | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Rapport ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Data Classification ====== | ||
| + | |||
| + | ===== DataClassification ===== | ||
| + | |||
| + | <code yaml> | ||
| + | DataClassification: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | entityType: | ||
| + | type: string | ||
| + | |||
| + | classification: | ||
| + | $ref: '#/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== DataSensitivity ===== | ||
| + | |||
| + | <code yaml> | ||
| + | DataSensitivity: | ||
| + | |||
| + | type: string | ||
| + | |||
| + | enum: | ||
| + | |||
| + | - PUBLIC | ||
| + | |||
| + | - INTERNAL | ||
| + | |||
| + | - CONFIDENTIAL | ||
| + | |||
| + | - RESTRICTED | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | PATCH / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Retention Policies ====== | ||
| + | |||
| + | ===== RetentionPolicy ===== | ||
| + | |||
| + | <code yaml> | ||
| + | RetentionPolicy: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | entityType: | ||
| + | type: string | ||
| + | |||
| + | retentionPeriodDays: | ||
| + | type: integer | ||
| + | |||
| + | archiveEnabled: | ||
| + | type: boolean | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | PATCH / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | < | ||
| + | AuditLogs | ||
| + | |||
| + | Contracts | ||
| + | |||
| + | Consents | ||
| + | |||
| + | Sessions | ||
| + | |||
| + | Notifications | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Security Policies ====== | ||
| + | |||
| + | ===== SecurityPolicy ===== | ||
| + | |||
| + | <code yaml> | ||
| + | SecurityPolicy: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | configuration: | ||
| + | type: object | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | PUT / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | < | ||
| + | Password Policy | ||
| + | |||
| + | Session Duration | ||
| + | |||
| + | MFA Required | ||
| + | |||
| + | Allowed Countries | ||
| + | |||
| + | API Rate Limits | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Security Dashboard ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | MFA Enabled Users | ||
| + | |||
| + | Active Sessions | ||
| + | |||
| + | Open Risks | ||
| + | |||
| + | Security Incidents | ||
| + | |||
| + | Compliance Score | ||
| + | |||
| + | Audit Success Rate | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Enterprise Monitoring ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Détections ===== | ||
| + | |||
| + | < | ||
| + | Impossible Travel | ||
| + | |||
| + | Privilege Escalation | ||
| + | |||
| + | Mass Export | ||
| + | |||
| + | Brute Force | ||
| + | |||
| + | Suspicious Login | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Permissions RBAC ====== | ||
| + | |||
| + | ===== Security ===== | ||
| + | |||
| + | < | ||
| + | security.read | ||
| + | |||
| + | security.manage | ||
| + | |||
| + | security.audit | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Compliance ===== | ||
| + | |||
| + | < | ||
| + | compliance.read | ||
| + | |||
| + | compliance.manage | ||
| + | |||
| + | compliance.audit | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Privacy ===== | ||
| + | |||
| + | < | ||
| + | privacy.read | ||
| + | |||
| + | privacy.export | ||
| + | |||
| + | privacy.erase | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Volume API ====== | ||
| + | |||
| + | Cette phase ajoute : | ||
| + | |||
| + | < | ||
| + | ≈ 94 endpoints | ||
| + | |||
| + | ≈ 35 schémas | ||
| + | |||
| + | ≈ 11 tags Swagger | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Cumul OpenAPI ====== | ||
| + | |||
| + | Après Phase 3-A.11 : | ||
| + | |||
| + | < | ||
| + | ≈ 771 endpoints | ||
| + | |||
| + | ≈ 270 schémas | ||
| + | |||
| + | ≈ 88 tags | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Phase 3-A.12 — OpenAPI Internationalisation, | ||
| + | |||
| + | ===== Objectif ===== | ||
| + | |||
| + | Finaliser le contrat API Enterprise 4.0. | ||
| + | |||
| + | Cette phase couvre : | ||
| + | |||
| + | < | ||
| + | Sprint 15 | ||
| + | |||
| + | Multi-sites & Réseau | ||
| + | |||
| + | Sprint 20 | ||
| + | |||
| + | Internationalisation | ||
| + | |||
| + | Release Enterprise 4.0 | ||
| + | </ | ||
| + | |||
| + | Elle permet : | ||
| + | |||
| + | < | ||
| + | Multi-langues | ||
| + | |||
| + | Multi-devises | ||
| + | |||
| + | Multi-fuseaux horaires | ||
| + | |||
| + | Multi-régions | ||
| + | |||
| + | Multi-sites | ||
| + | |||
| + | Marque blanche | ||
| + | |||
| + | Réseaux d' | ||
| + | |||
| + | Licences Enterprise | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Tags OpenAPI ====== | ||
| + | |||
| + | <code yaml> | ||
| + | tags: | ||
| + | |||
| + | - name: Countries | ||
| + | |||
| + | - name: Currencies | ||
| + | |||
| + | - name: Languages | ||
| + | |||
| + | - name: Timezones | ||
| + | |||
| + | - name: CurrencyRates | ||
| + | |||
| + | - name: Translations | ||
| + | |||
| + | - name: Regions | ||
| + | |||
| + | - name: Sites | ||
| + | |||
| + | - name: WhiteLabel | ||
| + | |||
| + | - name: EnterpriseLicenses | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Countries ====== | ||
| + | |||
| + | ===== Country ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Country: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | format: uuid | ||
| + | |||
| + | isoCode: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | currencyCode: | ||
| + | type: string | ||
| + | |||
| + | languageCode: | ||
| + | type: string | ||
| + | |||
| + | timezone: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /countries | ||
| + | |||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Currencies ====== | ||
| + | |||
| + | ===== Currency ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Currency: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | symbol: | ||
| + | type: string | ||
| + | |||
| + | decimals: | ||
| + | type: integer | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /currencies | ||
| + | |||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | < | ||
| + | EUR | ||
| + | |||
| + | USD | ||
| + | |||
| + | GBP | ||
| + | |||
| + | CHF | ||
| + | |||
| + | CAD | ||
| + | |||
| + | AED | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Currency Rates ====== | ||
| + | |||
| + | ===== CurrencyRate ===== | ||
| + | |||
| + | <code yaml> | ||
| + | CurrencyRate: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | baseCurrency: | ||
| + | type: string | ||
| + | |||
| + | targetCurrency: | ||
| + | type: string | ||
| + | |||
| + | exchangeRate: | ||
| + | type: number | ||
| + | |||
| + | effectiveDate: | ||
| + | type: string | ||
| + | format: date | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Conversion ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Request ===== | ||
| + | |||
| + | <code yaml> | ||
| + | CurrencyConversionRequest: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | amount: | ||
| + | type: number | ||
| + | |||
| + | sourceCurrency: | ||
| + | type: string | ||
| + | |||
| + | targetCurrency: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Languages ====== | ||
| + | |||
| + | ===== Language ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Language: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | locale: | ||
| + | type: string | ||
| + | |||
| + | active: | ||
| + | type: boolean | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /languages | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | < | ||
| + | fr-FR | ||
| + | |||
| + | en-US | ||
| + | |||
| + | en-GB | ||
| + | |||
| + | es-ES | ||
| + | |||
| + | it-IT | ||
| + | |||
| + | de-DE | ||
| + | |||
| + | nl-NL | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Timezones ====== | ||
| + | |||
| + | ===== Timezone ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Timezone: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | offset: | ||
| + | type: string | ||
| + | |||
| + | label: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /timezones | ||
| + | |||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Translations ====== | ||
| + | |||
| + | ===== Translation ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Translation: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | locale: | ||
| + | type: string | ||
| + | |||
| + | namespace: | ||
| + | type: string | ||
| + | |||
| + | translationKey: | ||
| + | type: string | ||
| + | |||
| + | translationValue: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | PATCH / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Import ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Export ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Regions ====== | ||
| + | |||
| + | ===== Region ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Region: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | defaultCurrency: | ||
| + | type: string | ||
| + | |||
| + | defaultLanguage: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /regions | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exemples ===== | ||
| + | |||
| + | < | ||
| + | EUROPE | ||
| + | |||
| + | NORTH_AMERICA | ||
| + | |||
| + | MIDDLE_EAST | ||
| + | |||
| + | ASIA_PACIFIC | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Sites ====== | ||
| + | |||
| + | ===== Site ===== | ||
| + | |||
| + | <code yaml> | ||
| + | Site: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | code: | ||
| + | type: string | ||
| + | |||
| + | name: | ||
| + | type: string | ||
| + | |||
| + | domain: | ||
| + | type: string | ||
| + | |||
| + | active: | ||
| + | type: boolean | ||
| + | |||
| + | defaultLanguage: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET /sites | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET /sites/{id} | ||
| + | |||
| + | PATCH /sites/{id} | ||
| + | |||
| + | DELETE /sites/{id} | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Domaines ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | |||
| + | DELETE / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== White Label ====== | ||
| + | |||
| + | ===== WhiteLabelConfiguration ===== | ||
| + | |||
| + | <code yaml> | ||
| + | WhiteLabelConfiguration: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | logoUrl: | ||
| + | type: string | ||
| + | |||
| + | faviconUrl: | ||
| + | type: string | ||
| + | |||
| + | primaryColor: | ||
| + | type: string | ||
| + | |||
| + | secondaryColor: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | PUT / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Personnalisation ===== | ||
| + | |||
| + | < | ||
| + | Theme | ||
| + | |||
| + | Logo | ||
| + | |||
| + | Emails | ||
| + | |||
| + | Domaines | ||
| + | |||
| + | SEO | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Agency Network ====== | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Mutualisation ===== | ||
| + | |||
| + | < | ||
| + | Réservations inter-agences | ||
| + | |||
| + | Catalogue mutualisé | ||
| + | |||
| + | Reporting mutualisé | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Enterprise Licenses ====== | ||
| + | |||
| + | ===== EnterpriseLicense ===== | ||
| + | |||
| + | <code yaml> | ||
| + | EnterpriseLicense: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | id: | ||
| + | type: string | ||
| + | |||
| + | licenseKey: | ||
| + | type: string | ||
| + | |||
| + | licenseType: | ||
| + | type: string | ||
| + | |||
| + | validUntil: | ||
| + | type: string | ||
| + | format: date | ||
| + | |||
| + | maxUsers: | ||
| + | type: integer | ||
| + | |||
| + | maxProperties: | ||
| + | type: integer | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Endpoints ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | |||
| + | POST / | ||
| + | |||
| + | GET / | ||
| + | |||
| + | PATCH / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Validation ===== | ||
| + | |||
| + | < | ||
| + | POST / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Multi-Régions ====== | ||
| + | |||
| + | ===== Déploiements ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Réponse ===== | ||
| + | |||
| + | < | ||
| + | EU-West | ||
| + | |||
| + | US-East | ||
| + | |||
| + | US-West | ||
| + | |||
| + | Middle-East | ||
| + | |||
| + | Asia-Pacific | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Paramètres de Localisation ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Réponse ===== | ||
| + | |||
| + | <code yaml> | ||
| + | LocalizationSettings: | ||
| + | |||
| + | type: object | ||
| + | |||
| + | properties: | ||
| + | |||
| + | defaultLanguage: | ||
| + | type: string | ||
| + | |||
| + | defaultCurrency: | ||
| + | type: string | ||
| + | |||
| + | defaultTimezone: | ||
| + | type: string | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Enterprise Dashboard ====== | ||
| + | |||
| + | ===== Endpoint ===== | ||
| + | |||
| + | < | ||
| + | GET / | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== KPI ===== | ||
| + | |||
| + | < | ||
| + | Sites actifs | ||
| + | |||
| + | Pays actifs | ||
| + | |||
| + | Langues actives | ||
| + | |||
| + | Régions actives | ||
| + | |||
| + | Licences | ||
| + | |||
| + | Agences connectées | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Permissions RBAC ====== | ||
| + | |||
| + | ===== Internationalisation ===== | ||
| + | |||
| + | < | ||
| + | i18n.read | ||
| + | |||
| + | i18n.manage | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Multi-sites ===== | ||
| + | |||
| + | < | ||
| + | sites.read | ||
| + | |||
| + | sites.manage | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Enterprise ===== | ||
| + | |||
| + | < | ||
| + | enterprise.read | ||
| + | |||
| + | enterprise.manage | ||
| + | |||
| + | enterprise.license | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Volume API ====== | ||
| + | |||
| + | Cette phase ajoute : | ||
| + | |||
| + | < | ||
| + | ≈ 88 endpoints | ||
| + | |||
| + | ≈ 28 schémas | ||
| + | |||
| + | ≈ 10 tags Swagger | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Cumul Final OpenAPI ====== | ||
| + | |||
| + | Après Phase 3-A.12 : | ||
| + | |||
| + | < | ||
| + | ≈ 859 endpoints | ||
| + | |||
| + | ≈ 298 schémas | ||
| + | |||
| + | ≈ 98 tags Swagger | ||
| + | |||
| + | ≈ 110 domaines métier | ||
| + | |||
| + | ≈ 1 contrat API Enterprise complet | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== OpenAPI Enterprise 4.0 — TERMINÉ ====== | ||
| + | |||
| + | Le contrat fonctionnel couvre désormais : | ||
| + | |||
| + | < | ||
| + | ✓ Auth | ||
| + | |||
| + | ✓ Users | ||
| + | |||
| + | ✓ RBAC | ||
| + | |||
| + | ✓ Owners | ||
| + | |||
| + | ✓ Properties | ||
| + | |||
| + | ✓ Customers | ||
| + | |||
| + | ✓ Reservations | ||
| + | |||
| + | ✓ Contracts | ||
| + | |||
| + | ✓ Signatures | ||
| + | |||
| + | ✓ Payments | ||
| + | |||
| + | ✓ Invoices | ||
| + | |||
| + | ✓ CRM | ||
| + | |||
| + | ✓ Messaging | ||
| + | |||
| + | ✓ Marketing | ||
| + | |||
| + | ✓ Automation | ||
| + | |||
| + | ✓ AI | ||
| + | |||
| + | ✓ Knowledge Base | ||
| + | |||
| + | ✓ Governance | ||
| + | |||
| + | ✓ Administration | ||
| + | |||
| + | ✓ OTA | ||
| + | |||
| + | ✓ Channel Manager | ||
| + | |||
| + | ✓ Revenue Management | ||
| + | |||
| + | ✓ Analytics | ||
| + | |||
| + | ✓ Security | ||
| + | |||
| + | ✓ Compliance | ||
| + | |||
| + | ✓ Internationalisation | ||
| + | |||
| + | ✓ Multi-sites | ||
| + | |||
| + | ✓ Enterprise | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Étape suivante recommandée ====== | ||
| + | |||
| + | Le travail de conception est désormais terminé. | ||
| + | |||
| + | Le prochain livrable devrait être : | ||
| + | |||
| + | ===== Phase 4 ===== | ||
| + | |||
| + | Génération du code exécutable | ||
| + | |||
| + | < | ||
| + | 4-A Prisma Schema final consolidé | ||
| + | |||
| + | 4-B DTO NestJS générés | ||
| + | |||
| + | 4-C SDK TypeScript généré | ||
| + | |||
| + | 4-D Structure NestJS complète | ||
| + | |||
| + | 4-E Structure NextJS complète | ||
| + | |||
| + | 4-F Docker Compose | ||
| + | |||
| + | 4-G GitHub Actions | ||
| + | |||
| + | 4-H Helm Charts | ||
| + | |||
| + | 4-I Terraform Infrastructure | ||
| + | |||
| + | 4-J Monorepo final | ||
| + | </ | ||
| + | À partir de ce point, on quitte la phase d' | ||
ujusum/3-codage/1-repository/3-spec-open-api.1780873018.txt.gz · Dernière modification : 2026/06/08 00:56 de admin