From 7e09fa331dfa78107a2d7accea42800787f407bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Delmaire?= Date: Thu, 12 Dec 2024 14:11:58 +0100 Subject: [PATCH 1/2] Introduce AbstractYAMLConfiguration Prepare to share behaviour --- app/services/abstract_yaml_configuration.rb | 29 +++++++++++++++++++ ...thorization_request_form_configurations.rb | 26 ++--------------- config/initializers/inflections.rb | 2 ++ 3 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 app/services/abstract_yaml_configuration.rb diff --git a/app/services/abstract_yaml_configuration.rb b/app/services/abstract_yaml_configuration.rb new file mode 100644 index 000000000..6633171b6 --- /dev/null +++ b/app/services/abstract_yaml_configuration.rb @@ -0,0 +1,29 @@ +class AbstractYAMLConfiguration + include Singleton + + def all + config + end + + protected + + def files + fail NotImplementedError + end + + private + + def config + @config ||= YAML.load(config_interpolated, aliases: true) + end + + def config_interpolated + ERB.new(config_raw).result + end + + def config_raw + files.inject('') do |final_payload, file| + final_payload << "#{File.read(file)}\n" + end + end +end diff --git a/app/services/authorization_request_form_configurations.rb b/app/services/authorization_request_form_configurations.rb index 972a1583b..115324c4c 100644 --- a/app/services/authorization_request_form_configurations.rb +++ b/app/services/authorization_request_form_configurations.rb @@ -1,27 +1,5 @@ -class AuthorizationRequestFormConfigurations - include Singleton - - def all - config - end - - private - - def config - @config ||= YAML.load(config_interpolated, aliases: true) - end - - def config_interpolated - ERB.new(config_raw).result - end - - def config_raw - data_providers_files.inject('') do |final_payload, file| - final_payload << "#{File.read(file)}\n" - end - end - - def data_providers_files +class AuthorizationRequestFormConfigurations < AbstractYAMLConfiguration + def files Dir[Rails.root.join('config/authorization_request_forms/*.y*ml').to_s] end end diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index 0ba5adf0a..d26e4fd00 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -21,6 +21,8 @@ inflect.acronym 'CRM' inflect.acronym 'QF' + inflect.acronym 'YAML' + inflect.acronym 'HubEE' inflect.acronym 'DC' From 8759b5f25c74c4478e6ad0dadcdcf0877191f9f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Delmaire?= Date: Thu, 12 Dec 2024 14:28:51 +0100 Subject: [PATCH 2/2] Introduce multi files for authorization definitions Migrate generators too --- app/models/authorization_definition.rb | 4 +- ...authorization_definition_configurations.rb | 5 + config/authorization_definitions.yml | 675 ------------------ .../authorization_definitions/api_opale.yml | 43 ++ config/authorization_definitions/base.yml | 630 ++++++++++++++++ .../definition/definition_generator.rb | 28 +- .../definition/templates/definition.yml.erb | 19 + .../multi_stages_definition_generator.rb | 64 +- .../templates/definition.yml.erb | 57 ++ spec/generator/definition_generator_spec.rb | 5 +- .../multi_stages_definition_generator_spec.rb | 7 +- 11 files changed, 765 insertions(+), 772 deletions(-) create mode 100644 app/services/authorization_definition_configurations.rb delete mode 100644 config/authorization_definitions.yml create mode 100644 config/authorization_definitions/api_opale.yml create mode 100644 config/authorization_definitions/base.yml create mode 100644 lib/generators/definition/templates/definition.yml.erb create mode 100644 lib/generators/multi_stages_definition/templates/definition.yml.erb diff --git a/app/models/authorization_definition.rb b/app/models/authorization_definition.rb index d759b83bd..07a917583 100644 --- a/app/models/authorization_definition.rb +++ b/app/models/authorization_definition.rb @@ -16,8 +16,8 @@ class AuthorizationDefinition < StaticApplicationRecord :public def self.all - Rails.application.config_for(:authorization_definitions).map do |uid, hash| - build(uid, hash) + AuthorizationDefinitionConfigurations.instance.all.map do |uid, hash| + build(uid, hash.deep_symbolize_keys) end end diff --git a/app/services/authorization_definition_configurations.rb b/app/services/authorization_definition_configurations.rb new file mode 100644 index 000000000..4961e2e85 --- /dev/null +++ b/app/services/authorization_definition_configurations.rb @@ -0,0 +1,5 @@ +class AuthorizationDefinitionConfigurations < AbstractYAMLConfiguration + def files + Dir[Rails.root.join('config/authorization_definitions/*.y*ml').to_s] + end +end diff --git a/config/authorization_definitions.yml b/config/authorization_definitions.yml deleted file mode 100644 index 77b591099..000000000 --- a/config/authorization_definitions.yml +++ /dev/null @@ -1,675 +0,0 @@ ---- -shared: - hubee_cert_dc: - name: "Démarche Certificats de Décès Électroniques Dématérialisés (CertDc)" - description: "Formulaire d'abonnement à la démarche Certificats de Décès Électroniques Dématérialisés" - cgu_link: "/cgus/20210212_dinum_hubee_cgu_v2_1_0_version_site.pdf" - access_link: https://portail.hubee.numerique.gouv.fr - kind: 'service' - provider: "dgs" - public: true - unique: true - blocks: - - name: "contacts" - - hubee_dila: - name: "Démarches du bouquet de services (service-public.fr)" - description: "Formulaire d'abonnement aux démarches du bouquet de services (service-public.fr)" - cgu_link: "/cgus/20210212_dinum_hubee_cgu_v2_1_0_version_site.pdf" - access_link: https://portail.hubee.numerique.gouv.fr - provider: "dila" - kind: 'service' - public: true - unique: true - blocks: - - name: "scopes" - - name: "contacts" - scopes: - - name: "AEC - Acte d’Etat Civil" - value: "etat_civil" - group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" - - name: "DDPACS - Démarche en ligne de préparation à la conclusion d’un Pacs" - value: "depot_dossier_pacs" - group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" - - name: "RCO - Recensement Citoyen Obligatoire" - value: "recensement_citoyen" - group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" - - name: "DHTOUR - Déclaration d’hébergement touristique" - value: "hebergement_tourisme" - group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" - - name: "JCC - Déclaration de Changement de Coordonnées" - value: "je_change_de_coordonnees" - group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" - - api_entreprise: - name: "API Entreprise" - description: "Entités administratives, simplifiez les démarches des entreprises et des associations en récupérant pour elles leurs informations administratives." - provider: "dinum" - kind: 'api' - link: "https://api.gouv.fr/les-api/api-entreprise" - cgu_link: "https://entreprise.api.gouv.fr/cgu" - access_link: https://entreprise.api.gouv.fr/compte/jetons/%{external_provider_id} - public: true - blocks: - - name: "basic_infos" - - name: "personal_data" - - name: "legal" - - name: "scopes" - - name: "contacts" - scopes: - - name: "Données unités légales et établissements du répertoire Sirene - Insee (diffusibles et non-diffusibles) | 🔐" - group: "Informations générales" - value: "unites_legales_etablissements_insee" - link: "https://entreprise.api.gouv.fr/catalogue?APIEntreprise_Endpoint%5Bquery%5D=insee" - - name: "Données des unités légales et établissements diffusibles - Insee | Open Data" - group: "Informations générales" - value: "open_data_unites_legales_etablissements_insee" - link: "https://entreprise.api.gouv.fr/catalogue?APIEntreprise_Endpoint%5Bquery%5D=insee%20diffusible" - included: true - - name: "Extrait RCS - Infogreffe | Open Data" - group: "Informations générales" - value: "open_data_extrait_rcs_infogreffe" - link: "https://entreprise.api.gouv.fr/catalogue/infogreffe/rcs/extrait" - included: true - - name: "Données associations - DJEPVA | Open Data" - group: "Informations générales" - value: "open_data_associations_djepva" - link: "https://entreprise.api.gouv.fr/catalogue/infogreffe/rcs/extrait" - included: true - - name: "N°TVA intracommunautaire français - Commission européenne | Open Data" - value: "open_data_numero_tva_commission_europeenne" - group: "Informations générales" - link: "https://entreprise.api.gouv.fr/catalogue/commission_europeenne/numero_tva" - included: true - - name: "Conventions collectives - FabNum | Open Data" - group: "Informations générales" - value: "open_data_conventions_collectives_fabnum" - link: "https://entreprise.api.gouv.fr/catalogue/fabrique_numerique_ministeres_sociaux/conventions_collectives" - included: true - - name: "Immatriculation EORI - Douanes | Open Data" - group: "Informations générales" - value: "open_data_immatriculation_eori_douanes" - link: "https://entreprise.api.gouv.fr/catalogue/douanes/immatriculation_eori" - included: true - - - name: "Données associations - DJEPVA | 🔐" - group: "Informations générales" - value: "associations_djepva" - link: "https://entreprise.api.gouv.fr/catalogue/djepva/associations" - - name: "Effectifs - GIP-MDS | 🔐" - group: "Informations générales" - value: "effectifs_urssaf" - link: "https://entreprise.api.gouv.fr/catalogue/?APIEntreprise_Endpoint%5Bquery%5D=effectif%20gip" - - name: "Mandataires sociaux - Infogreffe | 🔐" - group: "Informations générales" - value: "mandataires_sociaux_infogreffe" - link: "https://entreprise.api.gouv.fr/catalogue/infogreffe/mandataires_sociaux" - - name: "Bénéficiaires effectifs - Inpi | 🔐" - value: "beneficiaires_effectifs_inpi" - group: "Informations générales" - link: "https://entreprise.api.gouv.fr/catalogue/inpi/rne/beneficiaires_effectifs" - - name: "Chiffre d’affaires - DGFIP | 🔐" - group: "Informations financières" - value: "chiffre_affaires_dgfip" - link: "https://entreprise.api.gouv.fr/catalogue/dgfip/chiffres_affaires" - - name: "3 derniers bilans annuels - Banque de France | 🔐" - group: "Informations financières" - value: "bilans_bdf" - link: "https://entreprise.api.gouv.fr/catalogue/banque_de_france/bilans" - - name: "Liasses fiscales - DGFIP | 🔐" - group: "Informations financières" - value: "liasses_fiscales_dgfip" - link: "https://entreprise.api.gouv.fr/catalogue/dgfip/liasses_fiscales" - - name: "Attestation fiscale - DGFIP | 🔐" - group: "Informations de régularité" - value: "attestation_fiscale_dgfip" - link: "https://entreprise.api.gouv.fr/catalogue/dgfip/attestations_fiscales" - - name: "Attestation de vigilance - Urssaf | 🔐" - group: "Informations de régularité" - value: "attestation_sociale_urssaf" - link: "https://entreprise.api.gouv.fr/catalogue/urssaf/attestation_vigilance" - - name: "Conformité cotisations de sécurité sociale agricole - MSA | 🔐" - group: "Informations de régularité" - value: "cotisations_msa" - link: "https://entreprise.api.gouv.fr/catalogue/msa/conformites_cotisations" - - name: "Conformité cotisations retraite complémentaire - ProBTP | 🔐" - group: "Informations de régularité" - value: "cotisations_probtp" - link: "https://entreprise.api.gouv.fr/catalogue/probtp/conformites_cotisations_retraite" - - name: "Certificats de cotisations congés payés & chômage-intempéries - CNETP & CIBTP | 🔐" - group: "Informations de régularité" - value: "attestation_cotisations_conges_payes_chomage_intemperies_cibtp_cnetp" - link: "https://entreprise.api.gouv.fr/catalogue/cibtp/attestations_cotisations_conges_payes_chomage_intemperies" - - name: "Carte professionnelles des travaux publics - FNTP | Open Data" - group: "Informations de régularité" - value: "open_data_carte_pro_travaux_publics_fntp" - link: "https://entreprise.api.gouv.fr/catalogue/fntp/carte_professionnelle_travaux_public" - included: true - - name: "Qualiopi & habilitations France compétences - CARIF-OREF | 🔐" - group: "Certifications" - value: "certifications_qualiopi_france_competences" - link: "https://entreprise.api.gouv.fr/catalogue/carif_oref/certifications_qualiopi_france_competences" - - name: "Certification en BIO - Agence BIO | Open Data" - group: "Certifications" - value: "open_data_certifications_bio_agence_bio" - link: "https://entreprise.api.gouv.fr/catalogue/agence_bio/certifications_bio" - included: true - - name: "Certification RGE - ADEME | Open Data" - group: "Certifications" - value: "open_data_certifications_rge_ademe" - link: "https://entreprise.api.gouv.fr/catalogue/ademe/certifications_rge" - included: true - - name: "Certification Qualibat - Qualibat | Open Data" - group: "Certifications" - value: "open_data_certifications_batiment_qualibat" - link: "https://entreprise.api.gouv.fr/catalogue/qualibat/certifications_batiment" - included: true - - name: "Certification d'ingénierie - OPQIBI | Open Data" - group: "Certifications" - value: "open_data_certifications_ingenierie_opqibi" - link: "https://entreprise.api.gouv.fr/catalogue/opqibi/qualifications_ingenierie" - included: true - - name: "Certification Qualifelec - Qualifelec | Open Data" - group: "Certifications" - value: "open_data_certifications_qualifelec" - link: "https://entreprise.api.gouv.fr/catalogue/qualifelec/certificats" - included: true - - name: "Brevets, marques et modèles déposés - Inpi | Open Data" - group: "Certifications" - value: "open_data_brevets_marques_modeles_deposes_inpi" - link: "https://entreprise.api.gouv.fr/catalogue?APIEntreprise_Endpoint%5Bquery%5D=inpi%20d%C3%A9pos%C3%A9" - included: true - - api_particulier: - name: "API Particulier" - description: "Entités administratives, simplifiez les démarches des particuliers en récupérant pour eux leurs informations administratives (quotient familial CAF, composition familiale, statut demandeur d’emploi, étudiant et étudiant boursier)." - cgu_link: "https://particulier.api.gouv.fr/cgu" - provider: "dinum" - link: "https://api.gouv.fr/les-api/api-particulier" - access_link: https://particulier.api.gouv.fr/compte/jetons/%{external_provider_id} - kind: 'api' - public: true - blocks: - - name: "basic_infos" - - name: "modalities" - - name: "personal_data" - - name: "legal" - - name: "scopes" - - name: "contacts" - scopes: - - name: "Quotient familial CAF & MSA" - value: "cnaf_quotient_familial" - group: "API Quotient familial CAF & MSA" - - name: "Identités allocataire et conjoint" - value: "cnaf_allocataires" - group: "API Quotient familial CAF & MSA" - - name: "Identités enfants" - value: "cnaf_enfants" - group: "API Quotient familial CAF & MSA" - - name: "Adresse du foyer" - value: "cnaf_adresse" - group: "API Quotient familial CAF & MSA" - - - name: "Statut demandeur d'emploi et identité" - value: "pole_emploi_identite" - group: "API Statut demandeur d'emploi" - - name: "Téléphones et e-mail" - value: "pole_emploi_contact" - group: "API Statut demandeur d'emploi" - - name: "Adresse" - value: "pole_emploi_adresse" - group: "API Statut demandeur d'emploi" - - name: "Données d'inscription France Travail" - value: "pole_emploi_inscription" - group: "API Statut demandeur d'emploi" - - - name: "Montants et dates des paiements France Travail" - value: "pole_emploi_paiements" - group: "API Paiements France Travail" - - - name: "Statut élève scolarisé et identité" - value: "men_statut_scolarite" - group: "API Statut élève scolarisé et boursier" - - name: "Statut boursier (disponible en 2025)" - value: "men_statut_boursier" - group: "API Statut élève scolarisé et boursier" - - name: "Échelon de la bourse (disponible en 2025)" - value: "men_echelon_bourse" - group: "API Statut élève scolarisé et boursier" - - - name: "Statut étudiant boursier" - value: "cnous_statut_boursier" - group: "API Statut étudiant boursier" - - name: "Échelon de la bourse" - value: "cnous_echelon_bourse" - group: "API Statut étudiant boursier" - - name: "Identité" - value: "cnous_identite" - group: "API Statut étudiant boursier" - - name: "E-mail" - value: "cnous_email" - group: "API Statut étudiant boursier" - - name: "Période de versement" - value: "cnous_periode_versement" - group: "API Statut étudiant boursier" - - name: "Statut définitif de la bourse" - value: "cnous_statut_bourse" - group: "API Statut étudiant boursier" - - name: "Ville d‘études et établissement" - value: "cnous_ville_etudes" - group: "API Statut étudiant boursier" - - - name: "Identité de l'étudiant" - value: "mesri_identite" - group: "API Statut étudiant" - - name: 'Statut étudiant "admis"' - value: "mesri_admission" - group: "API Statut étudiant" - - name: "Statut étudiant inscrit | Périmètre formation initiale" - value: "mesri_inscription_etudiant" - group: "API Statut étudiant" - - name: "Statut étudiant inscrit | Périmètre formation continue" - value: "mesri_inscription_autre" - group: "API Statut étudiant" - - name: "Liste des établissements" - value: "mesri_etablissements" - group: "API Statut étudiant" - - - name: "Statut C2S" - value: "complementaire_sante_solidaire" - group: "API Complémentaire Santé Solidaire" - - - name: "Statut RSA" - value: "revenu_solidarite_active" - group: "API Revenue de Solidarité Active" - - name: "Majoration RSA" - value: "revenu_solidarite_active_majoration" - group: "API Revenue de Solidarité Active" - - - name: "Statut Prime d'activité" - value: "prime_activite" - group: "API Prime d'Activité" - - name: "Majoration Prime d'activité" - value: "prime_activite_majoration" - group: "API Prime d'Activité" - - - name: "Statut ASF" - value: "allocation_soutien_familial" - group: "API Allocation Soutien Familial" - - - name: "Statut AAH" - value: "allocation_adulte_handicape" - group: "API Allocation Adulte Handicapé" - - api_service_national: - name: "API Service National" - description: "Vérifiez si un candidat est en règle vis-à-vis de ses obligations de Service National et peut s’inscrire au concours ou à l’examen dont vous êtes en charge." - public: true - kind: 'api' - cgu_link: "https://presaje.sga.defense.gouv.fr/cgu-dln1f" - provider: "ministere_des_armees" - blocks: - - name: "basic_infos" - - name: "personal_data" - - name: "legal" - - name: "contacts" - - api_captchetat: - name: "API CaptchEtat" - description: "Générer un CAPTCHA pour sécuriser un service en ligne" - public: true - kind: 'api' - link: "https://api.gouv.fr/les-api/api-captchetat" - cgu_link: "/cgus/cgu_api_captchetat_v_1_2.pdf" - provider: "aife" - blocks: - - name: "basic_infos" - - name: "legal" - - name: "contacts" - - api_impot_particulier: - name: "API Impôt Particulier" - description: "Raccordez-vous directement à la DGFiP pour récupérer les éléments fiscaux nécessaires à vos téléservices, éliminez le traitement et le stockage des pièces justificatives" - public: true - kind: 'api' - link: "https://api.gouv.fr/les-api/impot-particulier" - cgu_link: "/cgu_api_impot_particulier_prod" - provider: "dgfip" - stage: - type: production - previouses: - - id: api_impot_particulier_sandbox - form_id: api-impot-particulier-production - blocks: - - name: basic_infos - - name: personal_data - - name: legal - - name: modalities - - name: scopes - - name: contacts - - name: operational_acceptance - - name: safety_certification - - name: volumetrie - scopes: &api_impot_particulier_scopes - - name: Dernière année de revenu - value: dgfip_annee_n_moins_1 - group: Années sur lesquelles porte votre demande - - name: Avant-dernière année de revenu - value: dgfip_annee_n_moins_2 - group: Années sur lesquelles porte votre demande - - name: Avant-avant-dernière année de revenu - value: dgfip_annee_n_moins_3 - group: Années sur lesquelles porte votre demande - - name: Avant-dernière année de revenu, si la dernière année de revenu est indisponible - value: dgfip_annee_n_moins_2_si_indispo_n_moins_1 - group: Années sur lesquelles porte votre demande - - name: Nom - value: dgfip_nmUsaDec1 - group: État civil - déclarant 1 - - name: Nom de naissance - value: dgfip_nmNaiDec1 - group: État civil - déclarant 1 - - name: Prénom(s) - value: dgfip_prnmDec1 - group: État civil - déclarant 1 - - name: Date de naissance - value: dgfip_dateNaisDec1 - group: État civil - déclarant 1 - - name: Nom - value: dgfip_nmUsaDec2 - group: État civil - déclarant 2 - - name: Nom de naissance - value: dgfip_nmNaiDec2 - group: État civil - déclarant 2 - - name: Prénom(s) - value: dgfip_prnmDec2 - group: État civil - déclarant 2 - - name: Date de naissance - value: dgfip_dateNaisDec2 - group: État civil - déclarant 2 - - name: Adresse déclarée au 1er Janvier - value: dgfip_aft - group: Adresse - - name: Situation de famille (marié, pacsé, célibataire, veuf divorcé) - value: dgfip_sitfam - group: Situation du foyer fiscal - - name: Nombre de parts - value: dgfip_nbpart - group: Situation du foyer fiscal - - name: Nombre de personnes à charge - value: dgfip_pac_nbPac - group: Situation du foyer fiscal - - name: Détail des personnes à charge et rattachées - value: dgfip_pac - group: Situation du foyer fiscal - - name: Parent isolé (case T) - value: dgfip_pariso - group: Situation du foyer fiscal - - name: Données fiscales au 31/12 en cas de décès d'un contribuable marié ou pacsé - value: dgfip_annee_df_au_3112_si_deces_ctb_mp - group: Situation du foyer fiscal - - name: Revenu fiscal de référence - value: dgfip_rfr - group: Agrégats fiscaux - - name: Montant de l’impôt sur les revenus soumis au barème (ligne 14) - value: dgfip_mntRevbareme - group: Agrégats fiscaux - - name: Indicateur de l’existence d’un déficit - value: dgfip_inddeficit - group: Agrégats fiscaux - - name: Indicateur ISF/IFI - value: dgfip_indiIFI - group: Agrégats fiscaux - - name: Catégorie 1 - Salaires, pensions, rentes - value: dgfip_RevDecl_Cat1_Tspr - group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) - - name: Catégorie 1 - Rentes viagères à titre onéreux - value: dgfip_RevDecl_Cat1_RentOn - group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) - - name: Catégorie 2 - Revenus de capitaux mobiliers - value: dgfip_RevDecl_Cat2_Rcm - group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) - - name: Catégorie 3 - Plus ou moins values - value: dgfip_RevDecl_Cat3_PMV - group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) - - name: Catégorie 4 - Revenus fonciers - value: dgfip_RevDecl_Cat4_Ref - group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) - - name: Catégorie 5 - Revenus des professions non salariées - value: dgfip_RevDecl_Cat5_NonSal - group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) - - name: Catégorie 1 - Salaires, pensions, rentes - value: dgfip_RevNets_Cat1_Tspr - group: Revenus catégoriels - revenus nets (après application des abattements, etc...) - - name: Catégorie 1 - Rentes viagères à titre onéreux - value: dgfip_RevNets_Cat1_RentOn - group: Revenus catégoriels - revenus nets (après application des abattements, etc...) - - name: Catégorie 2 - Revenus de capitaux mobiliers - value: dgfip_RevNets_Cat2_Rcm - group: Revenus catégoriels - revenus nets (après application des abattements, etc...) - - name: Catégorie 3 - Plus ou moins values - value: dgfip_RevNets_Cat3_PMV - group: Revenus catégoriels - revenus nets (après application des abattements, etc...) - - name: Catégorie 4 - Revenus fonciers - value: dgfip_RevNets_Cat4_Ref - group: Revenus catégoriels - revenus nets (après application des abattements, etc...) - - name: Catégorie 5 - Revenus des professions non salariées - value: dgfip_RevNets_Cat5_NonSal - group: Revenus catégoriels - revenus nets (après application des abattements, etc...) - - name: Pensions alimentaires déductibles - Pension alimentaire versées à enfant majeur - value: dgfip_PaDeduc_EnfMaj - group: Charges déductibles - - name: Pensions alimentaires déductibles - Autres pensions alimentaires versées (enfants mineurs, ascendants, ...) - value: dgfip_PaDeduc_Autres - group: Charges déductibles - - name: Versement épargne retraite - value: dgfip_EpargRetrDeduc - group: Charges déductibles - - name: Indicateur d’éligibilité au LEP - value: dgfip_IndLep - group: Éligibilité Livret d’Épargne Populaire - établissements bancaires uniquement - - api_impot_particulier_sandbox: - name: "API Impôt Particulier" - description: "Raccordez-vous directement à la DGFiP pour récupérer les éléments fiscaux nécessaires à vos téléservices, éliminez le traitement et le stockage des pièces justificatives" - provider: "dgfip" - kind: 'api' - link: "https://api.gouv.fr/les-api/impot-particulier" - cgu_link: "/cgu_api_impot_particulier_bas" - access_link: "https://api-impot-particulier-sandbox.gouv.fr/tokens/%s" - public: false - stage: - type: sandbox - next: - id: api_impot_particulier - form_id: api-impot-particulier-production - blocks: - - name: basic_infos - - name: personal_data - - name: legal - - name: modalities - - name: scopes - - name: contacts - scopes: *api_impot_particulier_scopes - - api_pro_sante_connect: - name: "API Pro Santé Connect" - description: "Authentifier les professionnels de la santé à partir du Répertoire Partagé des Professionnels de Santé (RPPS)." - public: true - kind: 'api' - link: "https://api.gouv.fr/les-api/api-pro-sante-connect" - cgu_link: "https://industriels.esante.gouv.fr/produits-et-services/pro-sante-connect/conditions-generale-d-utilisation-pro-sante-connect" - provider: "ans" - blocks: - - name: "basic_infos" - - name: "legal" - - name: "scopes" - - name: "contacts" - scopes: - - name: "Identifiant national" - value: "idnat" - group: "Données" - - name: "Données sectorielles" - value: "donnees_sectorielles" - group: "Données" - - annuaire_des_entreprise: - name: "Espace agent de l'Annuaire des Entreprises" - description: "Permet de consulter des données d'entreprises réservées aux agents de l'administration, certaines de ces données étant sous habilitation." - provider: "dinum" - kind: 'service' - link: "https://annuaire-entreprises.data.gouv.fr/" - # FEEDME - cgu_link: "https://annuaire-entreprises.data.gouv.fr/cgu" - # FEEDME - access_link: "https://annuaire-entreprises.data.gouv.fr/compte" - public: true - blocks: - - name: "basic_infos" - - name: "legal" - - france_connect: - name: France Connect - description: "Identifier les utilisateurs de votre site internet et accéder à certaines données d'identité certifiées." - provider: "dinum" - kind: 'service' - link: "https://franceconnect.gouv.fr/" - cgu_link: "https://franceconnect.gouv.fr/mentions-legales" - public: true - blocks: - - name: "basic_infos" - - name: "personal_data" - - name: "legal" - - name: "france_connect_eidas" - - name: "scopes" - - name: "contacts" - scopes: - - name: "Nom de naissance" - value: "family_name" - group: "Identité pivot" - - name: "Prénoms" - value: "given_name" - group: "Identité pivot" - - name: "Date de naissance" - value: "birthdate" - group: "Identité pivot" - - name: "Ville de naissance" - value: "birthplace" - group: "Identité pivot" - - name: "Pays de naissance" - value: "birthcountry" - group: "Identité pivot" - - name: "Sexe" - value: "gender" - group: "Identité pivot" - - name: "Nom d'usage" - value: "preferred_username" - group: "Autres données" - - name: "Adresse électronique" - value: "email" - group: "Autres données" - - name: "Identifiant technique" - value: "openid" - group: "Données techniques" - included: true - - formulaire_qf: - name: Formulaire d'accès au Quotient Familial - description: "Accéder au quotient familial CAF & MSA pour simplifier la tarification sociale municipale à l'enfance par le biais du \"formulaire de collecte du quotient familial\" et du portail agent HubEE." - provider: "dinum" - kind: 'service' - link: "https://quotient-familial.numerique.gouv.fr/" - cgu_link: "https://quotient-familial.numerique.gouv.fr/cgu_administrations" - access_link: "https://quotient-familial.numerique.gouv.fr/" - public: false - blocks: - - name: "legal" - - name: "contacts" - - api_hermes_sandbox: - name: API Hermes - description: "FEEDME" - provider: "dgfip" - kind: 'api' - link: "https://api.gouv.fr/producteurs/dgfip" - cgu_link: "/cgus/dgfip/cgu_bas_hermes_v.2023_11.pdf" - # FEEDME - access_link: "https://api-hermes.gouv.fr/tokens/%" - public: false - stage: - type: sandbox - next: - id: api_hermes - form_id: api-hermes-production - blocks: - - name: basic_infos - - name: personal_data - - name: legal - - name: contacts - - api_hermes: - name: API Hermes - description: "FEEDME" - provider: "dgfip" - kind: 'api' - link: "https://api.gouv.fr/producteurs/dgfip" - cgu_link: "/cgus/dgfip/cgu_prod_hermes_v.2023_11.pdf" - # FEEDME - access_link: "https://api-hermes.gouv.fr/tokens/%" - public: false - stage: - type: production - previouses: - - id: api_hermes_sandbox - form_id: api-hermes-sandbox - blocks: - - name: basic_infos - - name: personal_data - - name: legal - - name: contacts - - name: operational_acceptance - - name: safety_certification - - name: volumetrie - - api_opale_sandbox: - name: API OPALE - description: "FEEDME" - provider: "dgfip" - kind: 'api' - link: "https://api-opale.gouv.fr/feedme-with-valid-url" - cgu_link: "/public/cgus/dgfip/cgu_bas_opale_v.2023_11.pdf" - access_link: "https://api-opale.gouv.fr/tokens/%" - public: false - stage: - type: sandbox - next: - id: api_opale - form_id: api-opale-production - blocks: - - name: basic_infos - - name: personal_data - - name: legal - - name: contacts - - api_opale: - name: API OPALE - description: "FEEDME" - provider: "dgfip" - kind: 'api' - link: "https://api-opale.gouv.fr/feedme-with-valid-url" - cgu_link: "/public/cgus/dgfip/cgu_prod_opale_v.2023_11.pdf" - access_link: "https://api-opale.gouv.fr/tokens/%" - public: false - stage: - type: production - previouses: - - id: api_opale_sandbox - form_id: api-opale-sandbox - blocks: - - name: basic_infos - - name: personal_data - - name: legal - - name: contacts - - name: operational_acceptance - - name: safety_certification - - name: volumetrie diff --git a/config/authorization_definitions/api_opale.yml b/config/authorization_definitions/api_opale.yml new file mode 100644 index 000000000..0fcb31b9b --- /dev/null +++ b/config/authorization_definitions/api_opale.yml @@ -0,0 +1,43 @@ +api_opale_sandbox: + name: API OPALE + description: "FEEDME" + provider: "dgfip" + kind: 'api' + link: "https://api-opale.gouv.fr/feedme-with-valid-url" + cgu_link: "/public/cgus/dgfip/cgu_bas_opale_v.2023_11.pdf" + access_link: "https://api-opale.gouv.fr/tokens/%" + public: false + stage: + type: sandbox + next: + id: api_opale + form_id: api-opale-production + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + +api_opale: + name: API OPALE + description: "FEEDME" + provider: "dgfip" + kind: 'api' + link: "https://api-opale.gouv.fr/feedme-with-valid-url" + cgu_link: "/public/cgus/dgfip/cgu_prod_opale_v.2023_11.pdf" + access_link: "https://api-opale.gouv.fr/tokens/%" + public: false + stage: + type: production + previouses: + - id: api_opale_sandbox + form_id: api-opale-sandbox + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + - name: operational_acceptance + - name: safety_certification + - name: volumetrie + diff --git a/config/authorization_definitions/base.yml b/config/authorization_definitions/base.yml new file mode 100644 index 000000000..49ebcbf38 --- /dev/null +++ b/config/authorization_definitions/base.yml @@ -0,0 +1,630 @@ +hubee_cert_dc: + name: "Démarche Certificats de Décès Électroniques Dématérialisés (CertDc)" + description: "Formulaire d'abonnement à la démarche Certificats de Décès Électroniques Dématérialisés" + cgu_link: "/cgus/20210212_dinum_hubee_cgu_v2_1_0_version_site.pdf" + access_link: https://portail.hubee.numerique.gouv.fr + kind: 'service' + provider: "dgs" + public: true + unique: true + blocks: + - name: "contacts" + +hubee_dila: + name: "Démarches du bouquet de services (service-public.fr)" + description: "Formulaire d'abonnement aux démarches du bouquet de services (service-public.fr)" + cgu_link: "/cgus/20210212_dinum_hubee_cgu_v2_1_0_version_site.pdf" + access_link: https://portail.hubee.numerique.gouv.fr + provider: "dila" + kind: 'service' + public: true + unique: true + blocks: + - name: "scopes" + - name: "contacts" + scopes: + - name: "AEC - Acte d’Etat Civil" + value: "etat_civil" + group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" + - name: "DDPACS - Démarche en ligne de préparation à la conclusion d’un Pacs" + value: "depot_dossier_pacs" + group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" + - name: "RCO - Recensement Citoyen Obligatoire" + value: "recensement_citoyen" + group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" + - name: "DHTOUR - Déclaration d’hébergement touristique" + value: "hebergement_tourisme" + group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" + - name: "JCC - Déclaration de Changement de Coordonnées" + value: "je_change_de_coordonnees" + group: "Démarches en ligne auxquelles vous souhaitez abonner votre commune" + +api_entreprise: + name: "API Entreprise" + description: "Entités administratives, simplifiez les démarches des entreprises et des associations en récupérant pour elles leurs informations administratives." + provider: "dinum" + kind: 'api' + link: "https://api.gouv.fr/les-api/api-entreprise" + cgu_link: "https://entreprise.api.gouv.fr/cgu" + access_link: https://entreprise.api.gouv.fr/compte/jetons/%{external_provider_id} + public: true + blocks: + - name: "basic_infos" + - name: "personal_data" + - name: "legal" + - name: "scopes" + - name: "contacts" + scopes: + - name: "Données unités légales et établissements du répertoire Sirene - Insee (diffusibles et non-diffusibles) | 🔐" + group: "Informations générales" + value: "unites_legales_etablissements_insee" + link: "https://entreprise.api.gouv.fr/catalogue?APIEntreprise_Endpoint%5Bquery%5D=insee" + - name: "Données des unités légales et établissements diffusibles - Insee | Open Data" + group: "Informations générales" + value: "open_data_unites_legales_etablissements_insee" + link: "https://entreprise.api.gouv.fr/catalogue?APIEntreprise_Endpoint%5Bquery%5D=insee%20diffusible" + included: true + - name: "Extrait RCS - Infogreffe | Open Data" + group: "Informations générales" + value: "open_data_extrait_rcs_infogreffe" + link: "https://entreprise.api.gouv.fr/catalogue/infogreffe/rcs/extrait" + included: true + - name: "Données associations - DJEPVA | Open Data" + group: "Informations générales" + value: "open_data_associations_djepva" + link: "https://entreprise.api.gouv.fr/catalogue/infogreffe/rcs/extrait" + included: true + - name: "N°TVA intracommunautaire français - Commission européenne | Open Data" + value: "open_data_numero_tva_commission_europeenne" + group: "Informations générales" + link: "https://entreprise.api.gouv.fr/catalogue/commission_europeenne/numero_tva" + included: true + - name: "Conventions collectives - FabNum | Open Data" + group: "Informations générales" + value: "open_data_conventions_collectives_fabnum" + link: "https://entreprise.api.gouv.fr/catalogue/fabrique_numerique_ministeres_sociaux/conventions_collectives" + included: true + - name: "Immatriculation EORI - Douanes | Open Data" + group: "Informations générales" + value: "open_data_immatriculation_eori_douanes" + link: "https://entreprise.api.gouv.fr/catalogue/douanes/immatriculation_eori" + included: true + + - name: "Données associations - DJEPVA | 🔐" + group: "Informations générales" + value: "associations_djepva" + link: "https://entreprise.api.gouv.fr/catalogue/djepva/associations" + - name: "Effectifs - GIP-MDS | 🔐" + group: "Informations générales" + value: "effectifs_urssaf" + link: "https://entreprise.api.gouv.fr/catalogue/?APIEntreprise_Endpoint%5Bquery%5D=effectif%20gip" + - name: "Mandataires sociaux - Infogreffe | 🔐" + group: "Informations générales" + value: "mandataires_sociaux_infogreffe" + link: "https://entreprise.api.gouv.fr/catalogue/infogreffe/mandataires_sociaux" + - name: "Bénéficiaires effectifs - Inpi | 🔐" + value: "beneficiaires_effectifs_inpi" + group: "Informations générales" + link: "https://entreprise.api.gouv.fr/catalogue/inpi/rne/beneficiaires_effectifs" + - name: "Chiffre d’affaires - DGFIP | 🔐" + group: "Informations financières" + value: "chiffre_affaires_dgfip" + link: "https://entreprise.api.gouv.fr/catalogue/dgfip/chiffres_affaires" + - name: "3 derniers bilans annuels - Banque de France | 🔐" + group: "Informations financières" + value: "bilans_bdf" + link: "https://entreprise.api.gouv.fr/catalogue/banque_de_france/bilans" + - name: "Liasses fiscales - DGFIP | 🔐" + group: "Informations financières" + value: "liasses_fiscales_dgfip" + link: "https://entreprise.api.gouv.fr/catalogue/dgfip/liasses_fiscales" + - name: "Attestation fiscale - DGFIP | 🔐" + group: "Informations de régularité" + value: "attestation_fiscale_dgfip" + link: "https://entreprise.api.gouv.fr/catalogue/dgfip/attestations_fiscales" + - name: "Attestation de vigilance - Urssaf | 🔐" + group: "Informations de régularité" + value: "attestation_sociale_urssaf" + link: "https://entreprise.api.gouv.fr/catalogue/urssaf/attestation_vigilance" + - name: "Conformité cotisations de sécurité sociale agricole - MSA | 🔐" + group: "Informations de régularité" + value: "cotisations_msa" + link: "https://entreprise.api.gouv.fr/catalogue/msa/conformites_cotisations" + - name: "Conformité cotisations retraite complémentaire - ProBTP | 🔐" + group: "Informations de régularité" + value: "cotisations_probtp" + link: "https://entreprise.api.gouv.fr/catalogue/probtp/conformites_cotisations_retraite" + - name: "Certificats de cotisations congés payés & chômage-intempéries - CNETP & CIBTP | 🔐" + group: "Informations de régularité" + value: "attestation_cotisations_conges_payes_chomage_intemperies_cibtp_cnetp" + link: "https://entreprise.api.gouv.fr/catalogue/cibtp/attestations_cotisations_conges_payes_chomage_intemperies" + - name: "Carte professionnelles des travaux publics - FNTP | Open Data" + group: "Informations de régularité" + value: "open_data_carte_pro_travaux_publics_fntp" + link: "https://entreprise.api.gouv.fr/catalogue/fntp/carte_professionnelle_travaux_public" + included: true + - name: "Qualiopi & habilitations France compétences - CARIF-OREF | 🔐" + group: "Certifications" + value: "certifications_qualiopi_france_competences" + link: "https://entreprise.api.gouv.fr/catalogue/carif_oref/certifications_qualiopi_france_competences" + - name: "Certification en BIO - Agence BIO | Open Data" + group: "Certifications" + value: "open_data_certifications_bio_agence_bio" + link: "https://entreprise.api.gouv.fr/catalogue/agence_bio/certifications_bio" + included: true + - name: "Certification RGE - ADEME | Open Data" + group: "Certifications" + value: "open_data_certifications_rge_ademe" + link: "https://entreprise.api.gouv.fr/catalogue/ademe/certifications_rge" + included: true + - name: "Certification Qualibat - Qualibat | Open Data" + group: "Certifications" + value: "open_data_certifications_batiment_qualibat" + link: "https://entreprise.api.gouv.fr/catalogue/qualibat/certifications_batiment" + included: true + - name: "Certification d'ingénierie - OPQIBI | Open Data" + group: "Certifications" + value: "open_data_certifications_ingenierie_opqibi" + link: "https://entreprise.api.gouv.fr/catalogue/opqibi/qualifications_ingenierie" + included: true + - name: "Certification Qualifelec - Qualifelec | Open Data" + group: "Certifications" + value: "open_data_certifications_qualifelec" + link: "https://entreprise.api.gouv.fr/catalogue/qualifelec/certificats" + included: true + - name: "Brevets, marques et modèles déposés - Inpi | Open Data" + group: "Certifications" + value: "open_data_brevets_marques_modeles_deposes_inpi" + link: "https://entreprise.api.gouv.fr/catalogue?APIEntreprise_Endpoint%5Bquery%5D=inpi%20d%C3%A9pos%C3%A9" + included: true + +api_particulier: + name: "API Particulier" + description: "Entités administratives, simplifiez les démarches des particuliers en récupérant pour eux leurs informations administratives (quotient familial CAF, composition familiale, statut demandeur d’emploi, étudiant et étudiant boursier)." + cgu_link: "https://particulier.api.gouv.fr/cgu" + provider: "dinum" + link: "https://api.gouv.fr/les-api/api-particulier" + access_link: https://particulier.api.gouv.fr/compte/jetons/%{external_provider_id} + kind: 'api' + public: true + blocks: + - name: "basic_infos" + - name: "modalities" + - name: "personal_data" + - name: "legal" + - name: "scopes" + - name: "contacts" + scopes: + - name: "Quotient familial CAF & MSA" + value: "cnaf_quotient_familial" + group: "API Quotient familial CAF & MSA" + - name: "Identités allocataire et conjoint" + value: "cnaf_allocataires" + group: "API Quotient familial CAF & MSA" + - name: "Identités enfants" + value: "cnaf_enfants" + group: "API Quotient familial CAF & MSA" + - name: "Adresse du foyer" + value: "cnaf_adresse" + group: "API Quotient familial CAF & MSA" + + - name: "Statut demandeur d'emploi et identité" + value: "pole_emploi_identite" + group: "API Statut demandeur d'emploi" + - name: "Téléphones et e-mail" + value: "pole_emploi_contact" + group: "API Statut demandeur d'emploi" + - name: "Adresse" + value: "pole_emploi_adresse" + group: "API Statut demandeur d'emploi" + - name: "Données d'inscription France Travail" + value: "pole_emploi_inscription" + group: "API Statut demandeur d'emploi" + + - name: "Montants et dates des paiements France Travail" + value: "pole_emploi_paiements" + group: "API Paiements France Travail" + + - name: "Statut élève scolarisé et identité" + value: "men_statut_scolarite" + group: "API Statut élève scolarisé et boursier" + - name: "Statut boursier (disponible en 2025)" + value: "men_statut_boursier" + group: "API Statut élève scolarisé et boursier" + - name: "Échelon de la bourse (disponible en 2025)" + value: "men_echelon_bourse" + group: "API Statut élève scolarisé et boursier" + + - name: "Statut étudiant boursier" + value: "cnous_statut_boursier" + group: "API Statut étudiant boursier" + - name: "Échelon de la bourse" + value: "cnous_echelon_bourse" + group: "API Statut étudiant boursier" + - name: "Identité" + value: "cnous_identite" + group: "API Statut étudiant boursier" + - name: "E-mail" + value: "cnous_email" + group: "API Statut étudiant boursier" + - name: "Période de versement" + value: "cnous_periode_versement" + group: "API Statut étudiant boursier" + - name: "Statut définitif de la bourse" + value: "cnous_statut_bourse" + group: "API Statut étudiant boursier" + - name: "Ville d‘études et établissement" + value: "cnous_ville_etudes" + group: "API Statut étudiant boursier" + + - name: "Identité de l'étudiant" + value: "mesri_identite" + group: "API Statut étudiant" + - name: 'Statut étudiant "admis"' + value: "mesri_admission" + group: "API Statut étudiant" + - name: "Statut étudiant inscrit | Périmètre formation initiale" + value: "mesri_inscription_etudiant" + group: "API Statut étudiant" + - name: "Statut étudiant inscrit | Périmètre formation continue" + value: "mesri_inscription_autre" + group: "API Statut étudiant" + - name: "Liste des établissements" + value: "mesri_etablissements" + group: "API Statut étudiant" + + - name: "Statut C2S" + value: "complementaire_sante_solidaire" + group: "API Complémentaire Santé Solidaire" + + - name: "Statut RSA" + value: "revenu_solidarite_active" + group: "API Revenue de Solidarité Active" + - name: "Majoration RSA" + value: "revenu_solidarite_active_majoration" + group: "API Revenue de Solidarité Active" + + - name: "Statut Prime d'activité" + value: "prime_activite" + group: "API Prime d'Activité" + - name: "Majoration Prime d'activité" + value: "prime_activite_majoration" + group: "API Prime d'Activité" + + - name: "Statut ASF" + value: "allocation_soutien_familial" + group: "API Allocation Soutien Familial" + + - name: "Statut AAH" + value: "allocation_adulte_handicape" + group: "API Allocation Adulte Handicapé" + +api_service_national: + name: "API Service National" + description: "Vérifiez si un candidat est en règle vis-à-vis de ses obligations de Service National et peut s’inscrire au concours ou à l’examen dont vous êtes en charge." + public: true + kind: 'api' + cgu_link: "https://presaje.sga.defense.gouv.fr/cgu-dln1f" + provider: "ministere_des_armees" + blocks: + - name: "basic_infos" + - name: "personal_data" + - name: "legal" + - name: "contacts" + +api_captchetat: + name: "API CaptchEtat" + description: "Générer un CAPTCHA pour sécuriser un service en ligne" + public: true + kind: 'api' + link: "https://api.gouv.fr/les-api/api-captchetat" + cgu_link: "/cgus/cgu_api_captchetat_v_1_2.pdf" + provider: "aife" + blocks: + - name: "basic_infos" + - name: "legal" + - name: "contacts" + +api_impot_particulier: + name: "API Impôt Particulier" + description: "Raccordez-vous directement à la DGFiP pour récupérer les éléments fiscaux nécessaires à vos téléservices, éliminez le traitement et le stockage des pièces justificatives" + public: true + kind: 'api' + link: "https://api.gouv.fr/les-api/impot-particulier" + cgu_link: "/cgu_api_impot_particulier_prod" + provider: "dgfip" + stage: + type: production + previouses: + - id: api_impot_particulier_sandbox + form_id: api-impot-particulier-production + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: modalities + - name: scopes + - name: contacts + - name: operational_acceptance + - name: safety_certification + - name: volumetrie + scopes: &api_impot_particulier_scopes + - name: Dernière année de revenu + value: dgfip_annee_n_moins_1 + group: Années sur lesquelles porte votre demande + - name: Avant-dernière année de revenu + value: dgfip_annee_n_moins_2 + group: Années sur lesquelles porte votre demande + - name: Avant-avant-dernière année de revenu + value: dgfip_annee_n_moins_3 + group: Années sur lesquelles porte votre demande + - name: Avant-dernière année de revenu, si la dernière année de revenu est indisponible + value: dgfip_annee_n_moins_2_si_indispo_n_moins_1 + group: Années sur lesquelles porte votre demande + - name: Nom + value: dgfip_nmUsaDec1 + group: État civil - déclarant 1 + - name: Nom de naissance + value: dgfip_nmNaiDec1 + group: État civil - déclarant 1 + - name: Prénom(s) + value: dgfip_prnmDec1 + group: État civil - déclarant 1 + - name: Date de naissance + value: dgfip_dateNaisDec1 + group: État civil - déclarant 1 + - name: Nom + value: dgfip_nmUsaDec2 + group: État civil - déclarant 2 + - name: Nom de naissance + value: dgfip_nmNaiDec2 + group: État civil - déclarant 2 + - name: Prénom(s) + value: dgfip_prnmDec2 + group: État civil - déclarant 2 + - name: Date de naissance + value: dgfip_dateNaisDec2 + group: État civil - déclarant 2 + - name: Adresse déclarée au 1er Janvier + value: dgfip_aft + group: Adresse + - name: Situation de famille (marié, pacsé, célibataire, veuf divorcé) + value: dgfip_sitfam + group: Situation du foyer fiscal + - name: Nombre de parts + value: dgfip_nbpart + group: Situation du foyer fiscal + - name: Nombre de personnes à charge + value: dgfip_pac_nbPac + group: Situation du foyer fiscal + - name: Détail des personnes à charge et rattachées + value: dgfip_pac + group: Situation du foyer fiscal + - name: Parent isolé (case T) + value: dgfip_pariso + group: Situation du foyer fiscal + - name: Données fiscales au 31/12 en cas de décès d'un contribuable marié ou pacsé + value: dgfip_annee_df_au_3112_si_deces_ctb_mp + group: Situation du foyer fiscal + - name: Revenu fiscal de référence + value: dgfip_rfr + group: Agrégats fiscaux + - name: Montant de l’impôt sur les revenus soumis au barème (ligne 14) + value: dgfip_mntRevbareme + group: Agrégats fiscaux + - name: Indicateur de l’existence d’un déficit + value: dgfip_inddeficit + group: Agrégats fiscaux + - name: Indicateur ISF/IFI + value: dgfip_indiIFI + group: Agrégats fiscaux + - name: Catégorie 1 - Salaires, pensions, rentes + value: dgfip_RevDecl_Cat1_Tspr + group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) + - name: Catégorie 1 - Rentes viagères à titre onéreux + value: dgfip_RevDecl_Cat1_RentOn + group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) + - name: Catégorie 2 - Revenus de capitaux mobiliers + value: dgfip_RevDecl_Cat2_Rcm + group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) + - name: Catégorie 3 - Plus ou moins values + value: dgfip_RevDecl_Cat3_PMV + group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) + - name: Catégorie 4 - Revenus fonciers + value: dgfip_RevDecl_Cat4_Ref + group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) + - name: Catégorie 5 - Revenus des professions non salariées + value: dgfip_RevDecl_Cat5_NonSal + group: Revenus catégoriels - revenus déclarés (avant application des abattements, etc...) + - name: Catégorie 1 - Salaires, pensions, rentes + value: dgfip_RevNets_Cat1_Tspr + group: Revenus catégoriels - revenus nets (après application des abattements, etc...) + - name: Catégorie 1 - Rentes viagères à titre onéreux + value: dgfip_RevNets_Cat1_RentOn + group: Revenus catégoriels - revenus nets (après application des abattements, etc...) + - name: Catégorie 2 - Revenus de capitaux mobiliers + value: dgfip_RevNets_Cat2_Rcm + group: Revenus catégoriels - revenus nets (après application des abattements, etc...) + - name: Catégorie 3 - Plus ou moins values + value: dgfip_RevNets_Cat3_PMV + group: Revenus catégoriels - revenus nets (après application des abattements, etc...) + - name: Catégorie 4 - Revenus fonciers + value: dgfip_RevNets_Cat4_Ref + group: Revenus catégoriels - revenus nets (après application des abattements, etc...) + - name: Catégorie 5 - Revenus des professions non salariées + value: dgfip_RevNets_Cat5_NonSal + group: Revenus catégoriels - revenus nets (après application des abattements, etc...) + - name: Pensions alimentaires déductibles - Pension alimentaire versées à enfant majeur + value: dgfip_PaDeduc_EnfMaj + group: Charges déductibles + - name: Pensions alimentaires déductibles - Autres pensions alimentaires versées (enfants mineurs, ascendants, ...) + value: dgfip_PaDeduc_Autres + group: Charges déductibles + - name: Versement épargne retraite + value: dgfip_EpargRetrDeduc + group: Charges déductibles + - name: Indicateur d’éligibilité au LEP + value: dgfip_IndLep + group: Éligibilité Livret d’Épargne Populaire - établissements bancaires uniquement + +api_impot_particulier_sandbox: + name: "API Impôt Particulier" + description: "Raccordez-vous directement à la DGFiP pour récupérer les éléments fiscaux nécessaires à vos téléservices, éliminez le traitement et le stockage des pièces justificatives" + provider: "dgfip" + kind: 'api' + link: "https://api.gouv.fr/les-api/impot-particulier" + cgu_link: "/cgu_api_impot_particulier_bas" + access_link: "https://api-impot-particulier-sandbox.gouv.fr/tokens/%s" + public: false + stage: + type: sandbox + next: + id: api_impot_particulier + form_id: api-impot-particulier-production + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: modalities + - name: scopes + - name: contacts + scopes: *api_impot_particulier_scopes + +api_pro_sante_connect: + name: "API Pro Santé Connect" + description: "Authentifier les professionnels de la santé à partir du Répertoire Partagé des Professionnels de Santé (RPPS)." + public: true + kind: 'api' + link: "https://api.gouv.fr/les-api/api-pro-sante-connect" + cgu_link: "https://industriels.esante.gouv.fr/produits-et-services/pro-sante-connect/conditions-generale-d-utilisation-pro-sante-connect" + provider: "ans" + blocks: + - name: "basic_infos" + - name: "legal" + - name: "scopes" + - name: "contacts" + scopes: + - name: "Identifiant national" + value: "idnat" + group: "Données" + - name: "Données sectorielles" + value: "donnees_sectorielles" + group: "Données" + +annuaire_des_entreprise: + name: "Espace agent de l'Annuaire des Entreprises" + description: "Permet de consulter des données d'entreprises réservées aux agents de l'administration, certaines de ces données étant sous habilitation." + provider: "dinum" + kind: 'service' + link: "https://annuaire-entreprises.data.gouv.fr/" + # FEEDME + cgu_link: "https://annuaire-entreprises.data.gouv.fr/cgu" + # FEEDME + access_link: "https://annuaire-entreprises.data.gouv.fr/compte" + public: true + blocks: + - name: "basic_infos" + - name: "legal" + +france_connect: + name: France Connect + description: "Identifier les utilisateurs de votre site internet et accéder à certaines données d'identité certifiées." + provider: "dinum" + kind: 'service' + link: "https://franceconnect.gouv.fr/" + cgu_link: "https://franceconnect.gouv.fr/mentions-legales" + public: true + blocks: + - name: "basic_infos" + - name: "personal_data" + - name: "legal" + - name: "france_connect_eidas" + - name: "scopes" + - name: "contacts" + scopes: + - name: "Nom de naissance" + value: "family_name" + group: "Identité pivot" + - name: "Prénoms" + value: "given_name" + group: "Identité pivot" + - name: "Date de naissance" + value: "birthdate" + group: "Identité pivot" + - name: "Ville de naissance" + value: "birthplace" + group: "Identité pivot" + - name: "Pays de naissance" + value: "birthcountry" + group: "Identité pivot" + - name: "Sexe" + value: "gender" + group: "Identité pivot" + - name: "Nom d'usage" + value: "preferred_username" + group: "Autres données" + - name: "Adresse électronique" + value: "email" + group: "Autres données" + - name: "Identifiant technique" + value: "openid" + group: "Données techniques" + included: true + +formulaire_qf: + name: Formulaire d'accès au Quotient Familial + description: "Accéder au quotient familial CAF & MSA pour simplifier la tarification sociale municipale à l'enfance par le biais du \"formulaire de collecte du quotient familial\" et du portail agent HubEE." + provider: "dinum" + kind: 'service' + link: "https://quotient-familial.numerique.gouv.fr/" + cgu_link: "https://quotient-familial.numerique.gouv.fr/cgu_administrations" + access_link: "https://quotient-familial.numerique.gouv.fr/" + public: false + blocks: + - name: "legal" + - name: "contacts" + +api_hermes_sandbox: + name: API Hermes + description: "FEEDME" + provider: "dgfip" + kind: 'api' + link: "https://api.gouv.fr/producteurs/dgfip" + cgu_link: "/cgus/dgfip/cgu_bas_hermes_v.2023_11.pdf" + # FEEDME + access_link: "https://api-hermes.gouv.fr/tokens/%" + public: false + stage: + type: sandbox + next: + id: api_hermes + form_id: api-hermes-production + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + +api_hermes: + name: API Hermes + description: "FEEDME" + provider: "dgfip" + kind: 'api' + link: "https://api.gouv.fr/producteurs/dgfip" + cgu_link: "/cgus/dgfip/cgu_prod_hermes_v.2023_11.pdf" + # FEEDME + access_link: "https://api-hermes.gouv.fr/tokens/%" + public: false + stage: + type: production + previouses: + - id: api_hermes_sandbox + form_id: api-hermes-sandbox + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + - name: operational_acceptance + - name: safety_certification + - name: volumetrie diff --git a/lib/generators/definition/definition_generator.rb b/lib/generators/definition/definition_generator.rb index 34944792e..621c5181f 100644 --- a/lib/generators/definition/definition_generator.rb +++ b/lib/generators/definition/definition_generator.rb @@ -7,8 +7,8 @@ def create_model_file template 'authorization_request.rb.erb', "app/models/authorization_request/#{name.underscore}.rb" end - def insert_definition_infos - append_to_file 'config/authorization_definitions.yml', definition_data + def create_definition_file + template 'definition.yml.erb', "config/authorization_definitions/#{name.underscore}.yml" end def create_forms_file @@ -27,30 +27,6 @@ def create_feature_file private - def definition_data - <<-YAML_DATA - #{name.underscore}: - name: #{humanized_name} - description: "FEEDME" - provider: "dinum" - kind: 'api' - link: "https://#{name.underscore.dasherize}.gouv.fr/feedme-with-valid-url" - cgu_link: "https://#{name.underscore.dasherize}.gouv.fr/cgu" - access_link: "https://#{name.underscore.dasherize}.gouv.fr/tokens/%" - public: true - blocks: - - name: "basic_infos" - - name: "personal_data" - - name: "legal" - - name: "scopes" - - name: "contacts" - scopes: - - name: "Scope 1" - value: "value_1" - group: "Groupe" - YAML_DATA - end - def factory_data <<-FACTORY_DATA diff --git a/lib/generators/definition/templates/definition.yml.erb b/lib/generators/definition/templates/definition.yml.erb new file mode 100644 index 000000000..df10ca52f --- /dev/null +++ b/lib/generators/definition/templates/definition.yml.erb @@ -0,0 +1,19 @@ +<%= name.underscore %>: + name: <%= humanized_name %> + description: "FEEDME" + provider: "dinum" + kind: 'api' + link: "https://<%= name.underscore.dasherize %>.gouv.fr/feedme-with-valid-url" + cgu_link: "https://<%= name.underscore.dasherize %>.gouv.fr/cgu" + access_link: "https://<%= name.underscore.dasherize %>.gouv.fr/tokens/%" + public: true + blocks: + - name: "basic_infos" + - name: "personal_data" + - name: "legal" + - name: "scopes" + - name: "contacts" + scopes: + - name: "Scope 1" + value: "value_1" + group: "Groupe" diff --git a/lib/generators/multi_stages_definition/multi_stages_definition_generator.rb b/lib/generators/multi_stages_definition/multi_stages_definition_generator.rb index 4f0edac6b..218f7f28b 100644 --- a/lib/generators/multi_stages_definition/multi_stages_definition_generator.rb +++ b/lib/generators/multi_stages_definition/multi_stages_definition_generator.rb @@ -18,8 +18,8 @@ def create_models_file template 'authorization_request_production.rb.erb', "app/models/authorization_request/#{name.underscore}.rb" end - def insert_definitions_infos - append_to_file 'config/authorization_definitions.yml', definitions_data + def create_definition_file + template 'definition.yml.erb', "config/authorization_definitions/#{name.underscore}.yml" end def create_forms_file @@ -50,65 +50,6 @@ def provider options.fetch(:provider, 'dinum').downcase end - # rubocop:disable Metrics/AbcSize - def definitions_data - <<-YAML_DATA - #{name.underscore}_sandbox: - name: #{humanized_name} - description: "FEEDME" - provider: "#{provider}" - kind: 'api' - link: "https://#{name.underscore.dasherize}.gouv.fr/feedme-with-valid-url" - cgu_link: "https://#{name.underscore.dasherize}.gouv.fr/cgu" - access_link: "https://#{name.underscore.dasherize}.gouv.fr/tokens/%" - public: true - stage: - type: sandbox - next: - id: #{name.underscore} - form_id: #{name.underscore.dasherize} - blocks: - - name: basic_infos - - name: personal_data - - name: legal - #{scopes? ? '- name: scopes' : ''} - - name: contacts - #{if scopes? - "scopes: &#{name.underscore}_scopes - - name: 'Scope 1' - value: 'value_1' - group: 'Groupe'" - else - '' - end} - - #{name.underscore}: - name: #{humanized_name} - description: "FEEDME" - provider: "#{provider}" - kind: 'api' - link: "https://#{name.underscore.dasherize}.gouv.fr/feedme-with-valid-url" - cgu_link: "https://#{name.underscore.dasherize}.gouv.fr/cgu" - access_link: "https://#{name.underscore.dasherize}.gouv.fr/tokens/%" - public: true - stage: - type: production - previouses: - - id: #{name.underscore}_sandbox - form_id: #{name.underscore.dasherize}-sandbox - blocks: - - name: basic_infos - - name: personal_data - - name: legal - #{scopes? ? '- name: scopes' : ''} - - name: contacts - - name: operational_acceptance - - name: safety_certification - - name: volumetrie - #{scopes? ? "scopes: *#{name.underscore}_scopes" : ''} - YAML_DATA - end - def factory_data <<-FACTORY_DATA @@ -138,7 +79,6 @@ def factory_data end FACTORY_DATA end - # rubocop:enable Metrics/AbcSize def end_of_factory_file / end\nend/ diff --git a/lib/generators/multi_stages_definition/templates/definition.yml.erb b/lib/generators/multi_stages_definition/templates/definition.yml.erb new file mode 100644 index 000000000..af7ade800 --- /dev/null +++ b/lib/generators/multi_stages_definition/templates/definition.yml.erb @@ -0,0 +1,57 @@ +<%= name.underscore %>_sandbox: + name: <%= humanized_name %> + description: "FEEDME" + provider: "<%= provider %>" + kind: 'api' + link: "https://<%= name.underscore.dasherize %>.gouv.fr/feedme-with-valid-url" + cgu_link: "https://<%= name.underscore.dasherize %>.gouv.fr/cgu" + access_link: "https://<%= name.underscore.dasherize %>.gouv.fr/tokens/%" + public: true + stage: + type: sandbox + next: + id: <%= name.underscore %> + form_id: <%= name.underscore.dasherize %> + blocks: + - name: basic_infos + - name: personal_data + - name: legal +<% if scopes? %> + - name: scopes +<% end %> + - name: contacts + <% if scopes? %> + scopes: &<%= name.underscore %>_scopes + - name: 'Scope 1' + value: 'value_1' + group: 'Groupe' + <% end %> + +<%= name.underscore %>: + name: <%= humanized_name %> + description: "FEEDME" + provider: "<%= provider %>" + kind: 'api' + link: "https://<%= name.underscore.dasherize %>.gouv.fr/feedme-with-valid-url" + cgu_link: "https://<%= name.underscore.dasherize %>.gouv.fr/cgu" + access_link: "https://<%= name.underscore.dasherize %>.gouv.fr/tokens/%" + public: true + stage: + type: production + previouses: + - id: <%= name.underscore %>_sandbox + form_id: <%= name.underscore.dasherize %>-sandbox + blocks: + - name: basic_infos + - name: personal_data + - name: legal +<% if scopes? %> + - name: scopes +<% end %> + - name: contacts + - name: operational_acceptance + - name: safety_certification + - name: volumetrie +<% if scopes? %> + scopes: *<%= name.underscore %>_scopes +<% end %> diff --git a/spec/generator/definition_generator_spec.rb b/spec/generator/definition_generator_spec.rb index 432b8f9ac..27add7d82 100644 --- a/spec/generator/definition_generator_spec.rb +++ b/spec/generator/definition_generator_spec.rb @@ -5,7 +5,6 @@ arguments ['FranceGenerateur', 'Generateur de France'] before do - import_for_generator('config/authorization_definitions.yml') import_for_generator('spec/factories/authorization_requests.rb') run_generator @@ -18,9 +17,9 @@ end describe 'definition YAML file' do - subject(:file) { generator_file('config/authorization_definitions.yml') } + subject(:file) { generator_file('config/authorization_definitions/france_generateur.yml') } - it { expect(file.read).to include(/^ france_generateur:/) } + it { expect(file.read).to include(/^france_generateur:/) } it 'is a valid YAML' do expect { YAML.load_file(subject, aliases: true) }.not_to raise_error diff --git a/spec/generator/multi_stages_definition_generator_spec.rb b/spec/generator/multi_stages_definition_generator_spec.rb index dca0cebc3..6f31d1cf7 100644 --- a/spec/generator/multi_stages_definition_generator_spec.rb +++ b/spec/generator/multi_stages_definition_generator_spec.rb @@ -5,7 +5,6 @@ arguments ['FranceGenerateur', 'Generateur de France', '--provider=dgfip'] before do - import_for_generator('config/authorization_definitions.yml') import_for_generator('spec/factories/authorization_requests.rb') run_generator @@ -24,10 +23,10 @@ end describe 'definition YAML file' do - subject(:file) { generator_file('config/authorization_definitions.yml') } + subject(:file) { generator_file('config/authorization_definitions/france_generateur.yml') } - it { expect(file.read).to include(/^ france_generateur_sandbox:/) } - it { expect(file.read).to include(/^ france_generateur:/) } + it { expect(file.read).to include(/^france_generateur_sandbox:/) } + it { expect(file.read).to include(/^france_generateur:/) } it 'is a valid YAML' do expect { YAML.load_file(subject, aliases: true) }.not_to raise_error