Specificatie YAML voor Openbare Organisaties
Het bestand openCatalogi.yaml
is een voorgestelde standaard voor het identificeren van en verstrekken van informatie over openbare organisaties op GitHub. Dit bestand moet worden geplaatst in de .github
-map van de repository van een GitHub-organisatie. Het dient als een verklaring van de identiteit van de organisatie, inclusief de naam, website, contactgegevens en de software die het gebruikt en ondersteunt.
Door dit bestand te implementeren, kunnen openbare organisaties effectiever communiceren over hun software portfolio en bijdragen aan een transparant ecosysteem voor open-source. Het openCatalogi.yaml
-bestand van elke organisatie biedt essentiële informatie die kan worden gebruikt door ontwikkelaars, burgers en andere belanghebbenden om de activiteiten en toewijding van de organisatie in het opensource domein te begrijpen.
Een belangrijk aspect van deze toewijding aan open source is de ondersteuning die een organisatie biedt voor bepaalde software. Dit omvat zowel software die eigendom is van de organisatie zelf als software die eigendom is van andere organisaties. De geboden ondersteuning kan verschillende vormen aannemen, zoals onderhoud, hosting, software als een dienst (SaaS) of andere services. Deze details worden vastgelegd in een onderhoudsobject onder het veld softwareSupported
.
Het onderhoud-object vertegenwoordigt het type en niveau van ondersteuning dat de organisatie biedt voor een bepaalde software. Het bevat details zoals het type onderhoud en contactgegevens voor onderhoudsvragen.
Maken met workflow (aanbevolen)
Vanuit het OpenCatalogi-project is een GitHub-workflow beschikbaar die een publicorganisation.yaml
bestand aanmaakt, bijwerkt en het federatieve netwerk op de hoogte stelt van eventuele wijzigingen in de beschrijving van uw organisatie.
U kunt deze op de volgende manier gebruiken:
- Maak binnen uw GitHub-organisatie een repository aan met de naam
.github
(als u deze nog niet heeft).- Maak binnen deze repository een map
workflows
aan, die zelf binnen een.github
map hoort te zitten. Plaats daarin deze workflow.yaml.- Commit en push het workflow-bestand naar jouw repository.
Handmatig Maken
U kunt er ook voor kiezen om handmatig een publicorganisation bestand in uw repository op te nemen, houdt er in dat geval rekening mee dat het tot 24 uur kan duren voordat wijzigingen in het federatieve netwerk zichtbaar worden.
- Maak binnen uw github organisatee een repositry aan met de naam .github (als us deze nog niet heeft)
- Maak een
openCatalogi.yaml
bestand in de root van jouw repository met een teksteditor of een geïntegreerde ontwikkelomgeving (IDE).- Voeg de vereiste metadata toe aan het
openCatalogi.yaml
bestand. Een voorbeeld van een basisstructuur tref je hieronder.- Voeg eventuele aanvullende metadata toe die relevant kan zijn voor jouw component, zoals documentatie, afhankelijkheden, contactinformatie of onderhoudsinformatie.
- Commit en push het
openCatalogi.yaml
bestand naar jouw repository. Houd er rekening mee dat het de eerste keer tot 24 uur kan duren voordat OpenCatalogi je component indexeert.
Voorbeeld
openCatalogiYmlVersion: "0.2"
# The official name of the public organization
name: 'Public Organization Name' # for example name: 'Gemeente Rotterdam'
# The official website of the public organization
website: 'https://www.publicorganizationwebsite.com' # for example website: 'https://www.rotterdam.nl'
# The (optional) location of your own open catalogi installation
catalogusURL: "'https://catalogus.publicorganizationwebsite.com"
catalogusAPI: "'https://catalogus.publicorganizationwebsite.com/api"
# The contact details of the public organization
contact:
email: 'contact@publicorganization.com' # Public contact email
phone: '+1234567890' # Public contact phone number
# List of software the public organization owns. keep in mind that owns dosn't automatically means maintained
# Each item refers to the repository URL of the software
softwareOwned:
- 'https://github.com/organization/software1'
- 'https://github.com/organization/software2'
# List of software the public organization uses
# Each item refers to the repository URL of the software
softwareUsed:
- 'https://github.com/OpenCatalogi/OpenCatalogiBundle'
- 'https://github.com/open-zaak/open-zaak'
- 'https://github.com/VNG-Realisatie/OpenWebConcep'
# List of software the public organization supports
# Each item is a maintenance object representing the support provided for a software
softwareSupported:
- software: 'https://github.com/organization/software2'
type: 'maintenance' # The type of support provided
contact:
email: 'contact@publicorganization.com' # Public contact email
phone: '+1234567890' # Public contact phone number
- software: 'https://github.com/organization/software3'
type: 'saas' # The type of support provided
contact:
email: 'contact@publicorganization.com' # Public contact email
phone: '+1234567890' # Public contact phone number
De volgende tabel geeft een overzicht van alle eigenschappen in de openCatalogi.yaml of openCatalogi.yml bestand
Key | Type | Description |
---|---|---|
name | String | The official name of the public organization |
website | String (URL) | The official website of the public organization |
logo | String | The image of the organization |
catalogusAPI | String | The catalogus API of the organization |
contact | Object | The contact details of the public organization |
contact.email | String | The public contact email of the public organization |
contact.phone | String | The public contact phone number of the public organization |
softwareUsed | Array of Strings (URLs) | List of software the public organization uses, represented by their repository URLs |
softwareSupported | Array of Objects (maintenance) | List of software the public organization supports, represented by their maintenance objects |
softwareSupported[].software | String | The software that the organization supports |
softwareSupported[].type | String | The type of support provided for the software, one of "Hosting","SAAS","Support","Maintenance","Training","Consultancy","Purchase" |
softwareSupported[].contact | Object | The contact details of the support |
softwareSupported[].contact.email | String | The public contact email of the public organization |
softwareSupported[].contact.phone | String | The public contact phone number of the public organization |
Voor veel gebruikte software repositories zie de onderstaande lijst
Naam | Repository URl |
---|---|
OpenCatalogi | https://github.com/open-zaak/open-zaak |
OpenZaak | https://github.com/open-zaak/open-zaak |
Open Formulieren | https://github.com/open-formulieren/open-forms |
Open Webconcept | https://github.com/VNG-Realisatie/OpenWebConcept |
Jouw organisatie toevoegen aan OpenCatalogi via GitHub
Om je organisatie aan te melden op OpenCatalogi heb je een GitHub-organisatie en een organisatie-repository met een openCatalogi.yaml
nodig. Doorloop daarvoor de volgende stappen:
Stap 1: Maak een Organisatie op GitHub (als je die nog niet hebt)
- Log in op jouw GitHub-account.
- Klik op het '+' icoon in de rechterbovenhoek van de hoofdmenubalk.
- Kies 'New organization' uit het dropdown menu.
- Kies het soort account dat je wilt maken: gratis, Team of Enterprise. Voor de meeste gebruikers is het gratis account voldoende.
- Vul de accountgegevens in, zoals de organisatienaam, e-mailadres, etc. Klik daarna op 'Next'.
- Je kunt nu mensen aan jouw organisatie toevoegen door hun GitHub-gebruikersnamen of e-mailadressen in te voeren. Je kunt deze stap ook overslaan en later mensen toevoegen.
- Klik op 'Create organization'.
Stap 2: Maak een .github Repository (als je die nog niet hebt)
- Ga naar de pagina van jouw nieuwe organisatie. Dit zou iets moeten zijn als
https://github.com/[organisatienaam]
. - Klik op 'New' om een nieuwe repository te maken.
- Geef de repository de naam '.github'.
- Je kunt nu optioneel een beschrijving toevoegen, let er op dat je de repository publiekelijk maakt, en een README of
.gitignore
bestand toevoegt. - Klik op 'Create repository'.
Stap 4: Voeg een openCatalogi.yml toe
- Navigeer naar de zojuist aangemaakte
.github
-repository - Klik op "Add file" en kies "Create new file"
- Noem het bestand
openCatalogi.yaml
- Voeg de volgende inhoud toe aan het bestand:
openCatalogiYmlVersion: "0.2"
# The official name of the public organization
name: 'Public Organization Name'
# The official website of the public organization
website: 'https://www.publicorganizationwebsite.com'
# The contact details of the public organization
contact:
email: 'contact@publicorganization.com' # Public contact email
phone: '+1234567890' # Public contact phone number
# List of software the public organization uses
# Each item refers to the repository URL of the software
softwareUsed:
- 'https://github.com/OpenCatalogi/OpenCatalogiBundle'
- Vervang de bovenstaande waarden door de relevante gegevens van jouw organisatie
- Voeg eventueel extra gebruikte software pakketten toe (zie tabel hierboven)
- Klik op "Commit new file" onderaan de pagina
Stap 5: (optioneel) Meld jouw GitHub-organisatie aan voor OpenCatalogi
OpenCatalogi scant iedere dag GitHub, maar als je wilt weten of jouw bestand klopt kan dat wat lang duren. Gelukkig kan je dit ook versnellen
- Ga naar opencatalogi.nl
- Klik in het hoofdmenu op "documentatie"" en selecteer "over"
- Plak in de balk "Meld uw component" je URL van jouw .github repository e.g. "https://github.com/[organisatienaam]/.github"
- Als alles goed gaat word je daarna doorverwezen naar jouw organisatiepagina
Stap 6: (optioneel) Inregelen van een webhook
OpenCatalogi scant iedere dag GitHub, dat betekent dat het lang kan duren voordat wijzigingen in jouw repositories of nieuwe repositories zichtbaar worden. Gelukkig is daar een oplossing voor door OpenCatalogi elke keer te notificeren als er iets is gewijzigd. Daarvoor moet er een GitHub-webhook worden ingericht.
- Log in op jouw GitHub-account en ga naar de hoofdpagina van jouw organisatie.
- Klik op de "Settings" tab in de rechterbovenhoek van de pagina.
- Klik in het linker zijmenu op "Webhooks".
- Klik op de "Add webhook" knop aan de rechterkant.
- Je wordt nu gevraagd om jouw GitHub-wachtwoord in te voeren om te bevestigen dat je de rechten hebt om een webhook toe te voegen.
- In het veld "Payload URL" voer je de URL in waar je de webhook-gebeurtenissen naartoe wilt sturen. In jouw geval zou dit https://api.opencatalogi.nl/github_events zijn.
- Kies voor "Content type" de optie "application/json".
- In het gedeelte "Which events would you like to trigger this webhook?", selecteer je "Repositories". Dit zorgt ervoor dat de webhook wordt geactiveerd bij elke wijziging of het aanmaken van een repository.
- Zorg ervoor dat de "Active" checkbox is aangevinkt zodat de webhook daadwerkelijk wordt geactiveerd.
- Klik op de "Add webhook" knop om de webhook te creëren.
- Nu is de webhook ingesteld. Telkens wanneer er een repository wordt aangemaakt of gewijzigd in jouw organisatie, wordt er een bericht gestuurd naar de opgegeven URL. Let op, dit vereist beheerdersrechten voor de organisatie op GitHub. Als je deze rechten niet hebt, moet je aan de beheerder vragen om deze stappen uit te voeren.
Jouw organisatie toevoegen aan OpenCatalogi via GitLab (beta)
Note Deze functionaliteit bevindt zich nog in de bètafase, en wordt niet ondersteund voor productieomgevingen
Stap 1: Maak een Groep op GitLab (als je die nog niet hebt)
- Log in op jouw GitLab-account.
- Klik op het '+' icoon in de navigatiebalk aan de linkerzijde.
- Kies 'New group' uit het dropdown-menu.
- Vul de groepsgegevens in, zoals de groepsnaam, omschrijving, etc. Klik daarna op 'Create group'.
- Je kunt nu mensen aan jouw groep toevoegen door hun GitLab-gebruikersnamen of e-mailadressen in te voeren. Je kunt deze stap ook overslaan en later mensen toevoegen.
Stap 2: Maak een .gitlab Repository
-
Ga naar de pagina van jouw nieuwe groep. Dit zou iets moeten zijn als https://gitlab.com/[groepsnaam].
-
Klik op 'New project' om een nieuw project te maken.
-
Geef het project de naam '.gitlab'.
-
Je kunt nu optioneel een beschrijving toevoegen, let er op dat je het project publiek maakt, en een
README.md
of.gitignore
bestand toevoegt. -
Klik op 'Create project'.
-
Stap 3: Maak een openCatalogi.yml bestand
-
Navigeer naar het zojuist aangemaakte
.gitlab
project. -
Klik op 'New file'.
-
Kies de template 'YAML' en geef het bestand de naam 'openCatalogi.yaml'.
-
Voeg de volgende inhoud toe aan het bestand:
openCatalogiYmlVersion: "0.2"
# The official name of the public organization
name: 'Public Organization Name'
# The official website of the public organization
website: 'https://www.publicorganizationwebsite.com'
# The contact details of the public organization
contact:
email: 'contact@publicorganization.com' # Public contact email
phone: '+1234567890' # Public contact phone number
# List of software the public organization uses
# Each item refers to the repository URL of the software
softwareUsed:
- 'https://github.com/OpenCatalogi/OpenCatalogiBundle'
- Vervang de bovenstaande waarden door de relevante gegevens van jouw organisatie
- Voeg eventueel extra gebruikte softwarepakketten toe (zie tabel boven).
- Klik op 'Commit changes'.
Stap 4: (verplicht) Meld jouw GitLab groep aan voor OpenCatalogi
-
Ga naar opencatalogi.nl
-
Klik in het hoofdmenu op "documentatie" en selecteer "over"
-
Plak in de balk "Meld uw component" jouw URL van jouw
.gitlab
-project e.g. "https://gitlab.com/[groepsnaam]/.gitlab" -
Als alles goed gaat word je daarna doorverwezen naar jouw organisatie pagina.
Stap 5: (verplicht) Inregelen van een webhook
- Ga naar GitLab en log in met jouw gebruikersnaam en wachtwoord.
- Navigeer naar de groep waarvoor je de webhook wilt instellen. Dit kan je doen door in het linkermenu op "Groepen" te klikken en dan de desbetreffende groep te selecteren.
- Op de groepspagina, ga naar "Instellingen" in het linkermenu en selecteer "Webhooks".
- Klik op "Add webhook" of "Webhook toevoegen". Hier kan je de URL opgeven waar de webhook-aanvragen naartoe gestuurd moeten worden.
- Vul in het veld "URL" de URL
api.opencatalogi.nl/gitlabwebhook
in. - Onder het kopje "Triggers", selecteer de opties die je wilt activeren voor de webhook. In dit geval wil je waarschijnlijk de "Repository" trigger selecteren, die wordt geactiveerd wanneer er nieuwe repositories worden gemaakt of bestaande repositories worden bijgewerkt.
- Klik op "Add webhook" of "Webhook toevoegen" om de nieuwe webhook te creëren.