From 01647794913c5765c6548a2901059641228b2218 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:20:38 -0400 Subject: [PATCH 001/440] Create documentation --- documentation | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 documentation diff --git a/documentation b/documentation new file mode 100644 index 00000000..d7ea8cc6 --- /dev/null +++ b/documentation @@ -0,0 +1,7 @@ +# GC Forms API Documentation + +## Welcome + +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + +Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From f8e479d9759f15d334364480119dcad1bdb816dd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:22:05 -0400 Subject: [PATCH 002/440] Rename documentation to index.md --- documentation => index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename documentation => index.md (100%) diff --git a/documentation b/index.md similarity index 100% rename from documentation rename to index.md From 8d7924c300f9d12dc196273f0f2429a2b9013869 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:39:15 -0400 Subject: [PATCH 003/440] Adding different types of content to documentation --- index.md | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/index.md b/index.md index d7ea8cc6..a238fefb 100644 --- a/index.md +++ b/index.md @@ -1,7 +1,149 @@ # GC Forms API Documentation +(Version 1 - Pilot/trial - Limited to prototyping partners only) ## Welcome Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. + +## Overview + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + +This first version of the documentation includes what you need to know about: +- Getting started +- Authentication +- Making requests +- Monitoring +- Getting support + +## Getting started + +### What you will need +- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) +- A form set to deliver responses via “Download” in Settings +- A few “mock” responses submitted to the form +- A target system where you plan on receiving form submission data +- An API key (generated by you in Settings > API Access) +- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API + +^ No infrastructure development capabilities available? +^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. + +### Getting an API key + +**To create an API key for this initial integration testing:** +1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). +2. Create a draft form. +3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. +4. Click “Generate Key”. +5. Download JSON file that includes the private API key. + +^ **IMPORTANT!** +^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. + +## Authentication + +### Base URL + +**Now: _Staging_** currently available for prototyping purposes (temporarily) +```https://api.forms-staging.cdssandbox.xyz/``` + +**Later: _Production_** coming soon, not yet avialable for real live forms (eventually) +```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` + +### How authentication works + +The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. + +Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. + +The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. + +#### Integration examples + +Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. + +Use these examples as a reference to generate access tokens in your preferred programming language: +- [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/blob/main/examples/nodejs/accessTokenGenerator.ts) +- [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) +- [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) + +#### Authorization header + +Use this header for each API request to verify it’s you: + +``` +curl \ + --request GET "$FORMS_URL" \ + --header "Authorization: Bearer $ACCESS_TOKEN" +``` + +## Making requests + +The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. + +**Query parameters** +The API requests for GC Forms submission data are possible using query parameters such as: + + +- **{formID}** + 25-character alphanumeric string found at the end of the URL for the form or at the start of the + file name of the API key. + For example: ```clzvj8fzb00226o90r2b7l1gt```. + + +- **{SubmissionName}** + 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms + app. + For example: ```e02-08-d732```. + + +- **{ConfirmationCode}** + 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the + GC Forms app. + For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. + +**Examples** + +We’ve developed some examples that you can reference or run the program for, that we hope will help make integration easier. Here are the programming languages currently available: + +- [.NET / C#](https://github.com/cds-snc/forms-api/tree/main/examples/dotnet) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/tree/main/examples/nodejs) +- [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) +- [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) + +### Retrieving **new** form submissions + +#### HTTP request + +This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: + +```GET /forms/{formID}/submission/new``` + +_Note: The status of these form submissions will not change to “Downloaded”._ + +#### Response status + +| Status code | Example message | Meaning / how to fix | +| ----------- | --------------- | -------------------- | +| 200 | [ + ``` { + "name": "05-09-09f4", + "createdAt": 1725553403512 + }, + { + "name": "05-09-9620", + "createdAt": 1725553404965 + }, + { + "name": "05-09-75dc", + "createdAt": 1725553404972 + } +] +``` + | List of new submission names successfully retrieved. | + + From f78378b92e6798af015f6abcd81038fbcf6709bd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:42:16 -0400 Subject: [PATCH 004/440] Rename index.md to documentation/index.md Folder addition? --- index.md => documentation/index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename index.md => documentation/index.md (100%) diff --git a/index.md b/documentation/index.md similarity index 100% rename from index.md rename to documentation/index.md From d547e2e937b36dc52086545ff883efc9d7865d5b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:20:46 -0400 Subject: [PATCH 005/440] Update index.md Add a theme to the site --- documentation/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/index.md b/documentation/index.md index a238fefb..d3bb8c67 100644 --- a/documentation/index.md +++ b/documentation/index.md @@ -1,3 +1,5 @@ +theme: jekyll-theme-minimal + # GC Forms API Documentation (Version 1 - Pilot/trial - Limited to prototyping partners only) From d78eb059f0c45e1f04b1086216e010f4998952cd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:23:36 -0400 Subject: [PATCH 006/440] Create default.html --- documentation/_layouts/default.html | 1 + 1 file changed, 1 insertion(+) create mode 100644 documentation/_layouts/default.html diff --git a/documentation/_layouts/default.html b/documentation/_layouts/default.html new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/documentation/_layouts/default.html @@ -0,0 +1 @@ + From dab2545a07e6119296c8470c6207e2d252fdab50 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:25:26 -0400 Subject: [PATCH 007/440] Create _config.yml --- documentation/_layouts/_config.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 documentation/_layouts/_config.yml diff --git a/documentation/_layouts/_config.yml b/documentation/_layouts/_config.yml new file mode 100644 index 00000000..96f2b52c --- /dev/null +++ b/documentation/_layouts/_config.yml @@ -0,0 +1,2 @@ +title: GC Forms API Documentation +description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. From 1fb4a5915a8237e651bff7168ad052df41208173 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:26:33 -0400 Subject: [PATCH 008/440] Update _config.yml --- documentation/_layouts/_config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/_layouts/_config.yml b/documentation/_layouts/_config.yml index 96f2b52c..9f0d6856 100644 --- a/documentation/_layouts/_config.yml +++ b/documentation/_layouts/_config.yml @@ -1,2 +1,3 @@ title: GC Forms API Documentation description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. +theme: jekyll-theme-minimal From 2566de939144e49f6207a2d74301b52cb504c684 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:30:43 -0400 Subject: [PATCH 009/440] Create style.scss --- documentation/assets/css/style.scss | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 documentation/assets/css/style.scss diff --git a/documentation/assets/css/style.scss b/documentation/assets/css/style.scss new file mode 100644 index 00000000..5742f930 --- /dev/null +++ b/documentation/assets/css/style.scss @@ -0,0 +1,4 @@ +--- +--- + +@import "{{ site.theme }}"; From 1cbaee3b340674b247c1fdc0bf8679763da2a49e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:31:03 -0400 Subject: [PATCH 010/440] Rename documentation/_layouts/_config.yml to documentation/_config.yml --- documentation/{_layouts => }/_config.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename documentation/{_layouts => }/_config.yml (100%) diff --git a/documentation/_layouts/_config.yml b/documentation/_config.yml similarity index 100% rename from documentation/_layouts/_config.yml rename to documentation/_config.yml From c454db50aa6a608e3b069b880536e0aa38b8177c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:40:45 -0400 Subject: [PATCH 011/440] Rename index.md to index.md --- {documentation => docs}/index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {documentation => docs}/index.md (100%) diff --git a/documentation/index.md b/docs/index.md similarity index 100% rename from documentation/index.md rename to docs/index.md From 1287fc895eae28f5a44221bb2f09ec576dfc4d6a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:41:19 -0400 Subject: [PATCH 012/440] Rename default.html to default.html --- {documentation => docs}/_layouts/default.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {documentation => docs}/_layouts/default.html (100%) diff --git a/documentation/_layouts/default.html b/docs/_layouts/default.html similarity index 100% rename from documentation/_layouts/default.html rename to docs/_layouts/default.html From b565fade8dd0718bf2675a2941d2beb9f6756d8a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:41:58 -0400 Subject: [PATCH 013/440] Rename style.scss to style.scss --- {documentation => docs}/assets/css/style.scss | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {documentation => docs}/assets/css/style.scss (100%) diff --git a/documentation/assets/css/style.scss b/docs/assets/css/style.scss similarity index 100% rename from documentation/assets/css/style.scss rename to docs/assets/css/style.scss From 5f563395cb9c209c38ca58810a48ca6850e5b385 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 17 Oct 2024 16:42:19 -0400 Subject: [PATCH 014/440] Rename _config.yml to _config.yml --- {documentation => docs}/_config.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {documentation => docs}/_config.yml (100%) diff --git a/documentation/_config.yml b/docs/_config.yml similarity index 100% rename from documentation/_config.yml rename to docs/_config.yml From 233d363dfa55e41b79976afcbfc6727a56bc4027 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:09:44 -0400 Subject: [PATCH 015/440] Create menu.yml --- docs/menu.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs/menu.yml diff --git a/docs/menu.yml b/docs/menu.yml new file mode 100644 index 00000000..2f82cbfa --- /dev/null +++ b/docs/menu.yml @@ -0,0 +1,19 @@ +en: + landing: + name: "Home" + url: "/" + getting-started: + name: "Getting started" + url: "/getting-started/" + authentication: + name: "Authentication" + url: "/authentication/" + making-requests: + name: "Making requests" + url: "/making-requests/" + monitoring: + name: "Monitoring" + url: "/monitoring/" + contact: + name: "Getting support" + url: "/getting-support/" From 1ec0c4700f49318d37452443b168e3301d586012 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 12:52:45 -0400 Subject: [PATCH 016/440] Create sw.js --- docs/sw.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/sw.js diff --git a/docs/sw.js b/docs/sw.js new file mode 100644 index 00000000..b44ac23c --- /dev/null +++ b/docs/sw.js @@ -0,0 +1,38 @@ +--- +layout: null +--- + +importScripts( '{{ site.baseurl }}/cache-polyfill.js' ); + +var filesToCache = [ + // root + '{{ site.baseurl }}/', + '{{ site.baseurl }}/index.html', + // css + '{{ site.baseurl }}/assets/css/main.css', + '{{ site.baseurl }}/assets/css/normalize.css', + '{{ site.baseurl }}/assets/css/syntax.css', + // images + '{{ site.baseurl }}/assets/img/octocat.png', + // pages + {% for page in site.documents %}'{{ site.baseurl }}{{ page.url }}',{% endfor %} + // posts + {% for post in site.posts %}'{{ site.baseurl }}{{ post.url }}',{% endfor %} +]; + +self.addEventListener( 'install', function( e ) { + e.waitUntil( + caches.open( '{{ site.cache_name }}' ) + .then( function( cache ) { + return cache.addAll( filesToCache ); + }) + ); +}); + +self.addEventListener( 'fetch', function( event ) { + event.respondWith( + caches.match( event.request ).then( function( response ) { + return response || fetch( event.request ); + }) + ); +}); From d7bbfc816a2e07db27b03866b3972589884ffbae Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 12:53:22 -0400 Subject: [PATCH 017/440] Create index.html --- docs/index.html | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/index.html diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..d97221c9 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,8 @@ +--- +layout: default +lang: en +trans_url: /contexte +--- + +{% capture index %}{% include index.md %}{% endcapture %} +{{ index | markdownify }} From dd185243cc63a7d0b6607002a00d613cbca240c2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 12:57:55 -0400 Subject: [PATCH 018/440] Update _config.yml --- docs/_config.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/docs/_config.yml b/docs/_config.yml index 9f0d6856..74bc3654 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,3 +1,49 @@ title: GC Forms API Documentation description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. theme: jekyll-theme-minimal + + +# Base configuration +exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] +markdown: kramdown +highlighter: rouge + +collections: + pages: + output: true + permalink: /:path/ + +# Title +name: GC Forms API Documentation +subtitle: How to retrieve form submissions from an API endpoint + +# When using this template with a project page set the baseurl to '/project-name' +# For user/organization pages set this to an empty string +# When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 +# See http://jekyllrb.com/docs/github-pages/ for more info +#baseurl: '' +baseurl: '/api-documentation' + +# Author/Organization info to be displayed in the templates +author: + name: Canadian Digital Service + url: https://digital.canada.ca + +# Point the logo URL at a file in your repo or hosted elsewhere by your organization +logourl: +logoalt: + +# Repo list +# List repos that you would like to appear on the homepage here +repos: +- name: forms-api + description: GC Forms API + url: https://github.com/cds-snc/forms-api + + +# Style Variables +brand_color: "#FFCC3D" + +# Offline caching +offline_cache: false +cache_name: DOCter-v1.1 From 6cd096da0ff81cec410a022ee6c0a8b7681fa893 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:00:37 -0400 Subject: [PATCH 019/440] Create custom.css --- docs/assets/css/custom.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/assets/css/custom.css diff --git a/docs/assets/css/custom.css b/docs/assets/css/custom.css new file mode 100644 index 00000000..30abf8b1 --- /dev/null +++ b/docs/assets/css/custom.css @@ -0,0 +1,12 @@ +.main-content p { + margin-top: 1.8em; + margin-bottom: 0.2em; +} + +.main-content ul { + margin-top: 0.3em; +} + +.main-content li { + margin-bottom: 0; +} From 815e1116e6857c1962244bd6a50e54795fc5397c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:01:11 -0400 Subject: [PATCH 020/440] Create main.css --- docs/assets/css/main.css | 541 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 541 insertions(+) create mode 100644 docs/assets/css/main.css diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css new file mode 100644 index 00000000..25c1a606 --- /dev/null +++ b/docs/assets/css/main.css @@ -0,0 +1,541 @@ +--- +--- + +/* +Main.css +================================== +Begin with generic 'mobile first' styles +*/ + +/* +Normalize the box model +================================== +*/ + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + +/* +global styles +================================== +*/ + +html, body { + height: 100%; +} + +/* +Typography +================================== +*/ + +body { + font-family: "Avenir Next", Arial, sans-serif; + font-weight: 400; + font-style: normal; + line-height: 1.466666667; +} + +h1, +h3, +h4, +h5, +strong { + font-family: "Avenir Next Demi", "Avenir Next", Arial, sans-serif; + font-weight: 600; +} + +.site-title { + font-size: 1.625em; + font-family: "Avenir Next", Arial, sans-serif; + font-weight: normal; + color: #919395; + margin: 0; + line-height: 1.2941176470588236; + display: inline-block; + width: 70%; +} + +h2 { + font-weight: 600; + font-style: normal; + font-size: 1.375em; + margin: 1.4em 0 0 0; +} + +h4 { + font-size: 1em; + text-transform: uppercase; +} + +.page-title { + margin-top: .727272727em; /* 16/22 */ +} + +.float-right { + display: inline-block; + width: 25%; + margin: 0; + text-align: right; +} + +.language-switcher { +} +/* +Lists +-------------------------------- +*/ + +.main-content ul { + padding-left: 1.1em; +} + +.main-content li { + margin-bottom: 1em; +} + +li h3, +li h4 { + margin: 0; +} + +li p { + margin-top: 0; +} + +/* +Links +================================== +*/ + +a { + -webkit-transition: .2s; + -moz-transition: .2s; + transition: .2s; +} + +a, +a:link, +a:visited { + color: #0072ce; + border-bottom: 1px dotted #0072ce; + text-decoration: none; +} + +a:hover { + border-bottom: 1px solid #7eb8dd; + color: #7eb8dd; + text-decoration: none; +} + +a:active { + border-bottom: 1px solid #002d72; + color: #002d72; + text-decoration: none; +} + +a:focus { + border-bottom: 1px solid #0072ce; + color: #0072ce; + outline: thin dotted; + text-decoration: none; +} + +a.title-link { + color: #75787B; + border-bottom: none; +} + +a.title-link:hover, +a.title-link:active, +a.title-link:focus { + color: #7eb8dd; + border-bottom: none; +} + +a.skip-link { + color: #0072ce; + border-bottom: none; + padding: .25em; +} + +a.skip-link:hover, +a.skip-link:active, +a.skip-link:focus { + background-color: #0072ce; + color: #fff; + border-bottom: none; +} + + +/* +Navigation +================================== +*/ + +.sidebar-nav a { + display: block; + padding: 10px; + -webkit-transition: unset; + transition: unset; +} +.sidebar-nav a, +.sidebar-nav a:link, +.sidebar-nav a:visited { + border-bottom: none; + color: #75787b; +} +.sidebar-nav li:hover, +.sidebar-nav a:focus, +.sidebar-nav li:active, +.sidebar-nav .sidebar-nav-active { + color: #75787b; + border-left: 4px solid {{ site.brand_color }}; + background-color: transparent; + border-bottom: 1px solid #babbbd; +} +.sidebar-nav li:hover, +.sidebar-nav li:active, +.sidebar-nav .sidebar-nav-active { + padding-left: 0; +} +.sidebar-nav a:focus { + padding-left: 6px; +} +.sidebar-nav li:hover a:focus, +.sidebar-nav li:active a:focus { + border-left: none; + padding-left: 10px; +} +.sidebar-nav ul { + margin: 0; + padding: 0; + /*border-top: 1px solid @gray-50;*/ +} +.sidebar-nav li { + list-style: none; + border-bottom: 1px solid #babbbd; + font-size: 1.125em; + padding-left: 4px; +} +.sidebar-nav li:last-child { + border-bottom: none; +} + + +/* +Layout +================================== +*/ + +.logo { + display: block; +} + +.content { + padding-top: 2em; + padding-bottom: 2em; +} + +/* offset the fixed position header for jump links */ +section:before { + display: block; + content: ""; + height: 60px; + margin: -60px 0 0; +} + +.wrap { + max-width: 1200px; + margin: 0 auto; + padding-left: 20px; + padding-right: 20px; +} + +header { + width: 100%; + border-bottom: 4px solid {{ site.brand_color }}; + background-color: #fff; + padding: 2em 0; +} + + +/* +Footer +================================== +*/ + +/* for sticky footer */ +.container { + display: table; + height: 100%; + width: 100%; +} + +footer { + display: table-row; /* for sticky footer */ + height: 1px; /* for sticky footer */ + border-top: 2px solid #babbbd; + background: #f1f2f2; + width: 100%; + font-size: 0.875em; +} + +footer .wrap { + padding-top: 2em; + padding-bottom: 2em; +} + + +/* +Helpers +================================== +*/ + +/* Hide from both screenreaders and browsers: h5bp.com/u */ +.hidden { + display: none !important; + visibility: hidden; +} + +/* Hide only visually, but have it available for screenreaders: h5bp.com/v */ +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +/* Extends the .visuallyhidden class to allow the element to be focusable + * when navigated to via the keyboard: h5bp.com/p */ +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +/* Hide visually and from screenreaders, but maintain layout */ +.invisible { + visibility: hidden; +} + + +/* +Style +================================== +*/ + +.intro { + color: #75787B; +} + +li h4 { + margin: 0; +} + +.license { + font-family: "Avenir Next Demi", Arial, sans-serif; + font-weight: normal; + font-style: normal; +} + +pre { + max-width: 100%; + font-size: 0.875em; + overflow-y: scroll; + background-color: #f1f2f2; + padding: 10px; +} + +td, th { + border: 1px solid grey +} +/* +Post list +---------------------------------- +*/ + +ul.posts { + padding: 0; +} + +.posts li { + list-style: none; +} + +.post-date { + color: #75787B; +} + +/* +Repo list +---------------------------------- +*/ + +ul.repo-list { + margin: .5em 0 1em 0; + padding: 0; +} + +.repo-list li { + list-style: none; +} + +.repo-list p { + margin: 0; + font-size: 0.875em; +} + +.repo-list h4 { + text-transform: none; +} + +/* +Helper Classes +================================== +*/ + +/* +Clearfix list +---------------------------------- +*/ + +.group:before, +.group:after { + content: " "; + display: table; +} + +.group:after { + clear: both; +} + +.group { + *zoom: 1; +} + +/* +Desktop Styles +================================== +*/ + +@media screen and (min-width: 45em) and (min-height: 32.5em) { + + /* + Typography + ============================== + */ + + /* + Layout + ============================== + */ + + .logo { + max-width: 30%; + padding-right: 20px; + float: right; + } + + aside { + width: 30%; + float: left; + } + + .main-content { + width: 67%; + float: right; + margin-bottom: 120px; + } + + /* + Navigation + ============================== + */ + + + /* + Style + ============================== + */ + + /* + Repo list + ------------------------------ + */ + + .repo-list li { + list-style: none; + display: block; + float: left; + height: 4.0625em; + max-height: 4.0625em; + background-color: #E7E7E6; + border-left: 1px solid #BABBBD; + width: 30%; + } + + .repo-list a:link, + .repo-list a:visited { + display: block; + max-height: 4.0625em; + background-color: #E7E7E6; + border-bottom: none; + padding: .625em 1em 1em 1em; + } + + .repo-list a:hover { + color: #4D5F87; + background-color: #CDE3F1; + } + + .repo-list li:first-child { + text-align: center; + border-left: none; + line-height: 60px; + padding: .625em 1em; + width: 10%; + } + +} + +@media screen and (max-width: 54.375em) and (min-height: 32.5em) { + + /* keep the repo list containers the same height, but account for the need for more height */ + + .repo-list li { + height: 6em; + max-height: 6em; + } + + .repo-list a:link, + .repo-list a:visited { + max-height: 6em; + } +} + +/* +Mobile Styles +================================== +*/ + +@media screen and (max-width: 40.5em) { + + .main-content { + margin-top: 1.5em; + } + +} From 5efb5f15054204fd050ac014039fd56f26b4175f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:01:33 -0400 Subject: [PATCH 021/440] Create normalize.css --- docs/assets/css/normalize.css | 406 ++++++++++++++++++++++++++++++++++ 1 file changed, 406 insertions(+) create mode 100644 docs/assets/css/normalize.css diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css new file mode 100644 index 00000000..c2de8df9 --- /dev/null +++ b/docs/assets/css/normalize.css @@ -0,0 +1,406 @@ +/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * Correct `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9. + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background: transparent; +} + +/** + * Address `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/** + * Improve readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre-wrap; +} + +/** + * Set consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} From 9b052d687322964724388b3c2dcfe446466ca45a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:02:00 -0400 Subject: [PATCH 022/440] Create syntax.css --- docs/assets/css/syntax.css | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs/assets/css/syntax.css diff --git a/docs/assets/css/syntax.css b/docs/assets/css/syntax.css new file mode 100644 index 00000000..2774b764 --- /dev/null +++ b/docs/assets/css/syntax.css @@ -0,0 +1,60 @@ +.highlight { background: #ffffff; } +.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .k { font-weight: bold } /* Keyword */ +.highlight .o { font-weight: bold } /* Operator */ +.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #999999 } /* Generic.Heading */ +.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ +.highlight .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight .kc { font-weight: bold } /* Keyword.Constant */ +.highlight .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .s { color: #d14 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086B3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .ni { color: #800080 } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nn { color: #555555 } /* Name.Namespace */ +.highlight .nt { color: #000080 } /* Name.Tag */ +.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sb { color: #d14 } /* Literal.String.Backtick */ +.highlight .sc { color: #d14 } /* Literal.String.Char */ +.highlight .sd { color: #d14 } /* Literal.String.Doc */ +.highlight .s2 { color: #d14 } /* Literal.String.Double */ +.highlight .se { color: #d14 } /* Literal.String.Escape */ +.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ +.highlight .si { color: #d14 } /* Literal.String.Interpol */ +.highlight .sx { color: #d14 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #d14 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #008080 } /* Name.Variable.Class */ +.highlight .vg { color: #008080 } /* Name.Variable.Global */ +.highlight .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ From 48285779bdfe969ff3af48b3ad99673a0bc3ed2e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:03:39 -0400 Subject: [PATCH 023/440] Create respond.min.js --- docs/assets/js/respond.min.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 docs/assets/js/respond.min.js diff --git a/docs/assets/js/respond.min.js b/docs/assets/js/respond.min.js new file mode 100644 index 00000000..e3dc2c0d --- /dev/null +++ b/docs/assets/js/respond.min.js @@ -0,0 +1,6 @@ +/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ +/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ +window.matchMedia=window.matchMedia||function(a){"use strict";var c,d=a.documentElement,e=d.firstElementChild||d.firstChild,f=a.createElement("body"),g=a.createElement("div");return g.id="mq-test-1",g.style.cssText="position:absolute;top:-100em",f.style.background="none",f.appendChild(g),function(a){return g.innerHTML='­',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document); + +/*! Respond.js v1.3.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ +(function(a){"use strict";function x(){u(!0)}var b={};if(a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!b.mediaQueriesSupported){var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var b=m.shift();v(b.href,function(c){p(c,b.href,b.media),h[b.href]=!0,a.setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(b){var h="clientWidth",k=d[h],m="CSS1Compat"===c.compatMode&&k||c.body[h]||k,n={},o=l[l.length-1],p=(new Date).getTime();if(b&&q&&i>p-q)return a.clearTimeout(r),r=a.setTimeout(u,i),void 0;q=p;for(var v in e)if(e.hasOwnProperty(v)){var w=e[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?t||s():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?t||s():1)),w.hasquery&&(z&&A||!(z||m>=x)||!(A||y>=m))||(n[w.media]||(n[w.media]=[]),n[w.media].push(f[w.rules]))}for(var C in g)g.hasOwnProperty(C)&&g[C]&&g[C].parentNode===j&&j.removeChild(g[C]);for(var D in n)if(n.hasOwnProperty(D)){var E=c.createElement("style"),F=n[D].join("\n");E.type="text/css",E.media=D,j.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(c.createTextNode(F)),g.push(E)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)}})(this); From 73517f5b543810f253bb85c022af9db1c3ba0271 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:05:00 -0400 Subject: [PATCH 024/440] Create contex.md --- docs/_pages/en/contex.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/contex.md diff --git a/docs/_pages/en/contex.md b/docs/_pages/en/contex.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_pages/en/contex.md @@ -0,0 +1 @@ + From 47434755f51fe9455baf2bbb999bd2e93d9f7f78 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:05:21 -0400 Subject: [PATCH 025/440] Create contexte.md --- docs/_pages/fr/contexte.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/fr/contexte.md diff --git a/docs/_pages/fr/contexte.md b/docs/_pages/fr/contexte.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_pages/fr/contexte.md @@ -0,0 +1 @@ + From beae87ca80ca4b227526218c7ea869fe2e886157 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:06:22 -0400 Subject: [PATCH 026/440] Update default.html --- docs/_layouts/default.html | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index 8b137891..5c2ddfba 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -1 +1,78 @@ + + + + + + + {% if page.title == null %} + {{ site.name }} + {% else %} + {{ page.title }} - {{ site.name }} + {% endif %} + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + {% include sidebar.html %} + +
+ {{ content }} +
+ +
+ + +
+ {% if site.offline_cache == true %} + + {% endif %} + + From 16032de106ed5102efd6001a7ff6f51279a83d45 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:06:41 -0400 Subject: [PATCH 027/440] Create page.html --- docs/_layouts/page.html | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/_layouts/page.html diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html new file mode 100644 index 00000000..e5222ed7 --- /dev/null +++ b/docs/_layouts/page.html @@ -0,0 +1,7 @@ +--- +layout: default +--- + +

{{ page.title }}

+ +{{ content }} From 5585e4a6193d77dcd33dbbb37888014dfdfae02c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:06:59 -0400 Subject: [PATCH 028/440] Create post.html --- docs/_layouts/post.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_layouts/post.html diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html new file mode 100644 index 00000000..f2e278b0 --- /dev/null +++ b/docs/_layouts/post.html @@ -0,0 +1,11 @@ +--- +layout: default +--- +
+

{{ page.title }}

+

{{ page.date | date_to_string }}

+ +
+ {{ content }} +
+
From 05eca6a5510f952e9cd035fb8f5f279b4b9044a1 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:07:34 -0400 Subject: [PATCH 029/440] Create home.md --- docs/_includes/home.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_includes/home.md diff --git a/docs/_includes/home.md b/docs/_includes/home.md new file mode 100644 index 00000000..7f93ab9a --- /dev/null +++ b/docs/_includes/home.md @@ -0,0 +1 @@ +Placeholder text From 426a8e4515bb743885aed0cc42c0bb982e29639a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:08:54 -0400 Subject: [PATCH 030/440] Create repositories.html --- docs/_includes/repositories.html | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs/_includes/repositories.html diff --git a/docs/_includes/repositories.html b/docs/_includes/repositories.html new file mode 100644 index 00000000..43d00f7c --- /dev/null +++ b/docs/_includes/repositories.html @@ -0,0 +1,16 @@ +
+

{{site.data.translations[page.lang].repo}}

+ +
From 53a77bc8ae2c87183486728a695e4a205a4685ef Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:09:21 -0400 Subject: [PATCH 031/440] Create sidebar.html --- docs/_includes/sidebar.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_includes/sidebar.html diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html new file mode 100644 index 00000000..267c120b --- /dev/null +++ b/docs/_includes/sidebar.html @@ -0,0 +1,11 @@ + From 5c0ca9dcd031334bf7d6fbc9704877e631bc56ed Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:11:47 -0400 Subject: [PATCH 032/440] Create index.md --- docs/_includes/index.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 docs/_includes/index.md diff --git a/docs/_includes/index.md b/docs/_includes/index.md new file mode 100644 index 00000000..2e1a4000 --- /dev/null +++ b/docs/_includes/index.md @@ -0,0 +1,5 @@ +Welcome to the technical documentation for the GC Forms API +[Continue in English](https://cds-snc.github.io/forms-api/home) + +Bienvenue à la documentation technique pour l'API de Formulaire GC +[Continuer en français]([https://cds-snc.github.io/forms-api/accueil) From bb2be7486ba0fed7e1ab4a4fbfb259fd5b32ddb6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:12:49 -0400 Subject: [PATCH 033/440] Create accueil.md --- docs/_includes/accueil.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_includes/accueil.md diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md new file mode 100644 index 00000000..7f93ab9a --- /dev/null +++ b/docs/_includes/accueil.md @@ -0,0 +1 @@ +Placeholder text From 37718c49d2b9c51fed89acee47235cc02ce4b690 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:13:18 -0400 Subject: [PATCH 034/440] Rename docs/menu.yml to docs/_data/menu.yml --- docs/{ => _data}/menu.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{ => _data}/menu.yml (100%) diff --git a/docs/menu.yml b/docs/_data/menu.yml similarity index 100% rename from docs/menu.yml rename to docs/_data/menu.yml From 01a3669b08ec5d361f252ca8a8ea035637d23289 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:14:58 -0400 Subject: [PATCH 035/440] Update menu.yml --- docs/_data/menu.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index 2f82cbfa..450477a8 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,7 +1,7 @@ en: landing: name: "Home" - url: "/" + url: "/home" getting-started: name: "Getting started" url: "/getting-started/" @@ -17,3 +17,23 @@ en: contact: name: "Getting support" url: "/getting-support/" + +fr: + landing: + name: "Accueil" + url: "/accueil" + getting-started: + name: "Pour commencer" + url: "/pour-commencer/" + authentication: + name: "Authentification" + url: "/authentification/" + making-requests: + name: "Faire des requêtes" + url: "/faire-des-requetes/" + monitoring: + name: "Surveiller" + url: "/surveiller/" + contact: + name: "Obtenir du soutien" + url: "/obtenir-du-soutien/" From fffc276d87a137eb0d401ef7f2d0b6d8c735a32d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:15:25 -0400 Subject: [PATCH 036/440] Create repos.yml --- docs/_data/repos.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/_data/repos.yml diff --git a/docs/_data/repos.yml b/docs/_data/repos.yml new file mode 100644 index 00000000..e9c9f6e5 --- /dev/null +++ b/docs/_data/repos.yml @@ -0,0 +1,8 @@ +en: +- name: + description: + url: +fr: +- name: + description: + url: From 824a479fd5ab5679946d88d3e5f31c10c4261440 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:17:29 -0400 Subject: [PATCH 037/440] Create translations.yml --- docs/_data/translations.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 docs/_data/translations.yml diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml new file mode 100644 index 00000000..1a7730b4 --- /dev/null +++ b/docs/_data/translations.yml @@ -0,0 +1,22 @@ +en: + homepage-tag-line: "" + cds-snc: "Canadian Digital Service" + cds-snc-url: "https://digital.canada.ca" + hosting: "Hosted on" + built-by: "This project was built by the" + contribute: "Contribute to this documentation" + repo: "Repository" + language: "Français" + homepage-slug: "/home/" + site-name: "GC Forms - API Documentation" +fr: + homepage-tag-line: "" + cds-snc: "Service numérique canadien" + cds-snc-url: "https://numerique.canada.ca" + hosting: "Hébergé dans" + built-by: "Ce projet a été élaboré par le" + contribute: "Contribuer à cette documentation" + repo: "Référentiel" + language: "English" + homepage-slug: "/accueil/" + site-name: "Formulaires GC - Documentation API" From 2d996f3cde116627ecb5a602baace11828402054 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:18:29 -0400 Subject: [PATCH 038/440] Update index.md --- docs/index.md | 150 -------------------------------------------------- 1 file changed, 150 deletions(-) diff --git a/docs/index.md b/docs/index.md index d3bb8c67..8b137891 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,151 +1 @@ -theme: jekyll-theme-minimal -# GC Forms API Documentation -(Version 1 - Pilot/trial - Limited to prototyping partners only) - -## Welcome - -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. - -Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. - -## Overview - -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. - -This first version of the documentation includes what you need to know about: -- Getting started -- Authentication -- Making requests -- Monitoring -- Getting support - -## Getting started - -### What you will need -- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) -- A form set to deliver responses via “Download” in Settings -- A few “mock” responses submitted to the form -- A target system where you plan on receiving form submission data -- An API key (generated by you in Settings > API Access) -- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API - -^ No infrastructure development capabilities available? -^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. - -### Getting an API key - -**To create an API key for this initial integration testing:** -1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). -2. Create a draft form. -3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. -4. Click “Generate Key”. -5. Download JSON file that includes the private API key. - -^ **IMPORTANT!** -^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. - -## Authentication - -### Base URL - -**Now: _Staging_** currently available for prototyping purposes (temporarily) -```https://api.forms-staging.cdssandbox.xyz/``` - -**Later: _Production_** coming soon, not yet avialable for real live forms (eventually) -```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` - -### How authentication works - -The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. - -Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. - -The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. - -#### Integration examples - -Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. - -Use these examples as a reference to generate access tokens in your preferred programming language: -- [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) -- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/blob/main/examples/nodejs/accessTokenGenerator.ts) -- [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) -- [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) - -#### Authorization header - -Use this header for each API request to verify it’s you: - -``` -curl \ - --request GET "$FORMS_URL" \ - --header "Authorization: Bearer $ACCESS_TOKEN" -``` - -## Making requests - -The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. - -**Query parameters** -The API requests for GC Forms submission data are possible using query parameters such as: - - -- **{formID}** - 25-character alphanumeric string found at the end of the URL for the form or at the start of the - file name of the API key. - For example: ```clzvj8fzb00226o90r2b7l1gt```. - - -- **{SubmissionName}** - 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms - app. - For example: ```e02-08-d732```. - - -- **{ConfirmationCode}** - 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the - GC Forms app. - For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. - -**Examples** - -We’ve developed some examples that you can reference or run the program for, that we hope will help make integration easier. Here are the programming languages currently available: - -- [.NET / C#](https://github.com/cds-snc/forms-api/tree/main/examples/dotnet) -- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/tree/main/examples/nodejs) -- [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) -- [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) - -### Retrieving **new** form submissions - -#### HTTP request - -This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: - -```GET /forms/{formID}/submission/new``` - -_Note: The status of these form submissions will not change to “Downloaded”._ - -#### Response status - -| Status code | Example message | Meaning / how to fix | -| ----------- | --------------- | -------------------- | -| 200 | [ - ``` { - "name": "05-09-09f4", - "createdAt": 1725553403512 - }, - { - "name": "05-09-9620", - "createdAt": 1725553404965 - }, - { - "name": "05-09-75dc", - "createdAt": 1725553404972 - } -] -``` - | List of new submission names successfully retrieved. | - - From e051318d14eab2fe8b1fcc736d0c77e3958b8a45 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:18:48 -0400 Subject: [PATCH 039/440] Update and rename contex.md to home.md --- docs/_pages/en/contex.md | 1 - docs/_pages/en/home.md | 151 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+), 1 deletion(-) delete mode 100644 docs/_pages/en/contex.md create mode 100644 docs/_pages/en/home.md diff --git a/docs/_pages/en/contex.md b/docs/_pages/en/contex.md deleted file mode 100644 index 8b137891..00000000 --- a/docs/_pages/en/contex.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md new file mode 100644 index 00000000..d3bb8c67 --- /dev/null +++ b/docs/_pages/en/home.md @@ -0,0 +1,151 @@ +theme: jekyll-theme-minimal + +# GC Forms API Documentation +(Version 1 - Pilot/trial - Limited to prototyping partners only) + +## Welcome + +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + +Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. + +## Overview + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + +This first version of the documentation includes what you need to know about: +- Getting started +- Authentication +- Making requests +- Monitoring +- Getting support + +## Getting started + +### What you will need +- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) +- A form set to deliver responses via “Download” in Settings +- A few “mock” responses submitted to the form +- A target system where you plan on receiving form submission data +- An API key (generated by you in Settings > API Access) +- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API + +^ No infrastructure development capabilities available? +^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. + +### Getting an API key + +**To create an API key for this initial integration testing:** +1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). +2. Create a draft form. +3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. +4. Click “Generate Key”. +5. Download JSON file that includes the private API key. + +^ **IMPORTANT!** +^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. + +## Authentication + +### Base URL + +**Now: _Staging_** currently available for prototyping purposes (temporarily) +```https://api.forms-staging.cdssandbox.xyz/``` + +**Later: _Production_** coming soon, not yet avialable for real live forms (eventually) +```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` + +### How authentication works + +The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. + +Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. + +The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. + +#### Integration examples + +Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. + +Use these examples as a reference to generate access tokens in your preferred programming language: +- [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/blob/main/examples/nodejs/accessTokenGenerator.ts) +- [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) +- [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) + +#### Authorization header + +Use this header for each API request to verify it’s you: + +``` +curl \ + --request GET "$FORMS_URL" \ + --header "Authorization: Bearer $ACCESS_TOKEN" +``` + +## Making requests + +The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. + +**Query parameters** +The API requests for GC Forms submission data are possible using query parameters such as: + + +- **{formID}** + 25-character alphanumeric string found at the end of the URL for the form or at the start of the + file name of the API key. + For example: ```clzvj8fzb00226o90r2b7l1gt```. + + +- **{SubmissionName}** + 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms + app. + For example: ```e02-08-d732```. + + +- **{ConfirmationCode}** + 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the + GC Forms app. + For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. + +**Examples** + +We’ve developed some examples that you can reference or run the program for, that we hope will help make integration easier. Here are the programming languages currently available: + +- [.NET / C#](https://github.com/cds-snc/forms-api/tree/main/examples/dotnet) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/tree/main/examples/nodejs) +- [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) +- [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) + +### Retrieving **new** form submissions + +#### HTTP request + +This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: + +```GET /forms/{formID}/submission/new``` + +_Note: The status of these form submissions will not change to “Downloaded”._ + +#### Response status + +| Status code | Example message | Meaning / how to fix | +| ----------- | --------------- | -------------------- | +| 200 | [ + ``` { + "name": "05-09-09f4", + "createdAt": 1725553403512 + }, + { + "name": "05-09-9620", + "createdAt": 1725553404965 + }, + { + "name": "05-09-75dc", + "createdAt": 1725553404972 + } +] +``` + | List of new submission names successfully retrieved. | + + From e2ff484ad8064a6a4f60edcd65b9df540323ef85 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:19:25 -0400 Subject: [PATCH 040/440] Rename index.md to favicon.ico --- docs/{index.md => favicon.ico} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{index.md => favicon.ico} (100%) diff --git a/docs/index.md b/docs/favicon.ico similarity index 100% rename from docs/index.md rename to docs/favicon.ico From ddc408566092d086054fb9888e460d3e2a241467 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:21:13 -0400 Subject: [PATCH 041/440] Update index.html --- docs/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.html b/docs/index.html index d97221c9..14c6df3b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,8 +1,8 @@ --- layout: default lang: en -trans_url: /contexte +trans_url: /accueil --- -{% capture index %}{% include index.md %}{% endcapture %} +{% capture index %}{% include home.md %}{% endcapture %} {{ index | markdownify }} From 43580601c897d3911d85c02b5cc21eba74fbe1bf Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:23:56 -0400 Subject: [PATCH 042/440] Update menu.yml --- docs/_data/menu.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index 450477a8..d8c568de 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,5 +1,5 @@ en: - landing: + home: name: "Home" url: "/home" getting-started: @@ -19,7 +19,7 @@ en: url: "/getting-support/" fr: - landing: + accueil: name: "Accueil" url: "/accueil" getting-started: From 1d2e3ba724fffff610f9d675d92aae37e4b5cc78 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:27:33 -0400 Subject: [PATCH 043/440] Create .gitignore --- docs/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 docs/.gitignore diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..9263a1ed --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +_site +.DS_Store From afee377e40b2a0d2f6e89f6952745dbc5b645a63 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:28:16 -0400 Subject: [PATCH 044/440] Update index.html --- docs/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.html b/docs/index.html index 14c6df3b..d97221c9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,8 +1,8 @@ --- layout: default lang: en -trans_url: /accueil +trans_url: /contexte --- -{% capture index %}{% include home.md %}{% endcapture %} +{% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From 5eba24f3b2444ff7af8372da4fd5a7d4231c3525 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:29:05 -0400 Subject: [PATCH 045/440] Update index.html --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index d97221c9..f5ecf87a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,7 +1,7 @@ --- layout: default lang: en -trans_url: /contexte +trans_url: /accueil --- {% capture index %}{% include index.md %}{% endcapture %} From d24a6b6dd716188c948c8f1ce4fda7bd2ad45ce1 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:33:19 -0400 Subject: [PATCH 046/440] Create cache-polyfill.js --- docs/cache-polyfill.js | 72 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs/cache-polyfill.js diff --git a/docs/cache-polyfill.js b/docs/cache-polyfill.js new file mode 100644 index 00000000..7b4e6bf7 --- /dev/null +++ b/docs/cache-polyfill.js @@ -0,0 +1,72 @@ +/** + * Copyright 2015 Google Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +if (!Cache.prototype.addAll) { + Cache.prototype.addAll = function addAll(requests) { + var cache = this; + + // Since DOMExceptions are not constructable: + function NetworkError(message) { + this.name = 'NetworkError'; + this.code = 19; + this.message = message; + } + NetworkError.prototype = Object.create(Error.prototype); + + return Promise.resolve().then(function() { + if (arguments.length < 1) throw new TypeError(); + + // Simulate sequence<(Request or USVString)> binding: + var sequence = []; + + requests = requests.map(function(request) { + if (request instanceof Request) { + return request; + } + else { + return String(request); // may throw TypeError + } + }); + + return Promise.all( + requests.map(function(request) { + if (typeof request === 'string') { + request = new Request(request); + } + + var scheme = new URL(request.url).protocol; + + if (scheme !== 'http:' && scheme !== 'https:') { + throw new NetworkError("Invalid scheme"); + } + + return fetch(request.clone()); + }) + ); + }).then(function(responses) { + // TODO: check that requests don't overwrite one another + // (don't think this is possible to polyfill due to opaque responses) + return Promise.all( + responses.map(function(response, i) { + return cache.put(requests[i], response); + }) + ); + }).then(function() { + return undefined; + }); + }; +} From 75723f2c07962985df220412d530af0d06e7d4df Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:37:13 -0400 Subject: [PATCH 047/440] Update menu.yml --- docs/_data/menu.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index d8c568de..cb010077 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,7 +1,7 @@ en: home: name: "Home" - url: "/home" + url: "/home/" getting-started: name: "Getting started" url: "/getting-started/" @@ -21,7 +21,7 @@ en: fr: accueil: name: "Accueil" - url: "/accueil" + url: "/accueil/" getting-started: name: "Pour commencer" url: "/pour-commencer/" From 3cdd9c56cfa6828ce07aed05fd00f25f5b235ba6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:38:16 -0400 Subject: [PATCH 048/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 1a7730b4..f1c3c1a8 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "" + homepage-tag-line: "GC Forms API" cds-snc: "Canadian Digital Service" cds-snc-url: "https://digital.canada.ca" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms - API Documentation" fr: - homepage-tag-line: "" + homepage-tag-line: "API Formulaires GC" cds-snc: "Service numérique canadien" cds-snc-url: "https://numerique.canada.ca" hosting: "Hébergé dans" From 6cfc3cbf7effea19257d2efecfcc0f3fddf0bd34 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:38:51 -0400 Subject: [PATCH 049/440] Update accueil.md --- docs/_includes/accueil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index 7f93ab9a..25a391e6 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1 +1 @@ -Placeholder text +French home From 09c0aa39f3591902ca460b680a6e623670b63639 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:39:24 -0400 Subject: [PATCH 050/440] Update index.md --- docs/_includes/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 2e1a4000..5d37ac95 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -1,3 +1,5 @@ +{% include navigation.html %} + Welcome to the technical documentation for the GC Forms API [Continue in English](https://cds-snc.github.io/forms-api/home) From d418b022bc96a1a7949e21fc9a2cc8fd50d6b658 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:40:04 -0400 Subject: [PATCH 051/440] Create navigation-fr.html --- docs/_includes/navigation-fr.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_includes/navigation-fr.html diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html new file mode 100644 index 00000000..1beb8e27 --- /dev/null +++ b/docs/_includes/navigation-fr.html @@ -0,0 +1,11 @@ +

Table des matières

+{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} +{% for cat in mydocs %} +

{{ cat.name | capitalize }}

+ +{% endfor %} From e311a9007d4fef976678aa34167aee05032ff3ee Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:40:24 -0400 Subject: [PATCH 052/440] Create navigation.html --- docs/_includes/navigation.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_includes/navigation.html diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html new file mode 100644 index 00000000..883f61a7 --- /dev/null +++ b/docs/_includes/navigation.html @@ -0,0 +1,11 @@ +

Table of contents

+{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} +{% for cat in mydocs %} +

{{ cat.name | capitalize }}

+ +{% endfor %} From ed2467d1095c26923a82ec227575a592fb73ba17 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:41:44 -0400 Subject: [PATCH 053/440] Update repositories.html --- docs/_includes/repositories.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_includes/repositories.html b/docs/_includes/repositories.html index 43d00f7c..1716ddc1 100644 --- a/docs/_includes/repositories.html +++ b/docs/_includes/repositories.html @@ -2,7 +2,7 @@

{{site.data.translations[page.lang].repo}}

+

{{site.data.translations[page.lang].learn-more}} {{site.data.translations[page.lang].code-and-repo}}.

From c1d04448b0cbe5b5c6ab7396e837a9052957280d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:43:18 -0400 Subject: [PATCH 054/440] Update page.html --- docs/_layouts/page.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html index e5222ed7..a467fbbc 100644 --- a/docs/_layouts/page.html +++ b/docs/_layouts/page.html @@ -1,7 +1,6 @@ --- layout: default --- - +

← {{site.data.translations[page.lang].toc}}

{{ page.title }}

- {{ content }} From ebc2081719129157ef3839b737bfcb0174d238f1 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:43:42 -0400 Subject: [PATCH 055/440] Create homepage.html --- docs/_layouts/homepage.html | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/_layouts/homepage.html diff --git a/docs/_layouts/homepage.html b/docs/_layouts/homepage.html new file mode 100644 index 00000000..73dae177 --- /dev/null +++ b/docs/_layouts/homepage.html @@ -0,0 +1,4 @@ +--- +layout: default +--- +{{ content }} From 53f721d03f28f54d34b17b6b0064a040d0c08b56 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:47:34 -0400 Subject: [PATCH 056/440] Update and rename favicon.ico to Gemfile --- docs/Gemfile | 3 +++ docs/favicon.ico | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 docs/Gemfile delete mode 100644 docs/favicon.ico diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 00000000..0c8671cd --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem "github-pages", group: :jekyll_plugins diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index 8b137891..00000000 --- a/docs/favicon.ico +++ /dev/null @@ -1 +0,0 @@ - From 221e7aefad87244b613ded700d25fe90d4e411bc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:48:00 -0400 Subject: [PATCH 057/440] Create Gemfile.lock --- docs/Gemfile.lock | 248 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 docs/Gemfile.lock diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 00000000..88be30c7 --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,248 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.11) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.5) + dnsruby (1.61.2) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.11.0) + ffi (>= 1.3.0) + eventmachine (1.2.7) + execjs (2.7.0) + faraday (0.15.2) + multipart-post (>= 1.2, < 3) + ffi (1.11.1) + forwardable-extended (2.6.0) + gemoji (3.0.0) + github-pages (191) + activesupport (= 4.2.10) + github-pages-health-check (= 1.8.1) + jekyll (= 3.7.3) + jekyll-avatar (= 0.6.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.10.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.9.4) + jekyll-mentions (= 1.4.1) + jekyll-optional-front-matter (= 0.3.0) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.14.0) + jekyll-relative-links (= 0.5.3) + jekyll-remote-theme (= 0.3.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.5.0) + jekyll-sitemap (= 1.2.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.3) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.10.1) + kramdown (= 1.17.0) + liquid (= 4.0.0) + listen (= 3.1.5) + mercenary (~> 0.3) + minima (= 2.5.0) + nokogiri (>= 1.8.2, < 2.0) + rouge (= 2.2.1) + terminal-table (~> 1.4) + github-pages-health-check (1.8.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 2.0) + typhoeus (~> 1.3) + html-pipeline (2.8.4) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.6.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.2.0) + commonmarker (~> 0.14) + jekyll (>= 3.0, < 4.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.10.0) + jekyll (~> 3.3) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.9.4) + jekyll (~> 3.1) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.4.1) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-optional-front-matter (0.3.0) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.2.0) + jekyll (~> 3.0) + jekyll-redirect-from (0.14.0) + jekyll (~> 3.3) + jekyll-relative-links (0.5.3) + jekyll (~> 3.3) + jekyll-remote-theme (0.3.1) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.5.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.3) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) + jekyll (~> 3.3) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.10.1) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.17.0) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mini_portile2 (2.4.0) + minima (2.5.0) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) + multipart-post (2.0.0) + nokogiri (1.10.9) + mini_portile2 (~> 2.4.0) + octokit (4.11.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (2.0.5) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby_dep (1.5.0) + rubyzip (2.0.0) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.3.0) + ethon (>= 0.9.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + unicode-display_width (1.4.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + +BUNDLED WITH + 1.16.4 From 2d401abda2cc250bafaccba71d23b11312249d8d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:48:41 -0400 Subject: [PATCH 058/440] Add files via upload --- docs/favicon.ico | Bin 0 -> 5430 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/favicon.ico diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7848a38a5cf1f67f04b3211d028acbf9cd960592 GIT binary patch literal 5430 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 W7&CJOcwqi}HPsma literal 0 HcmV?d00001 From a6296ca38f5b8e418e1cb52739ceac56fe9093bc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:49:17 -0400 Subject: [PATCH 059/440] Create 1 --- docs/assets/img/1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/assets/img/1 diff --git a/docs/assets/img/1 b/docs/assets/img/1 new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/docs/assets/img/1 @@ -0,0 +1 @@ +1 From fd95f052ae1cf3e42693ccfc0a959f4dbdcde919 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:49:26 -0400 Subject: [PATCH 060/440] Add files via upload --- docs/assets/img/octocat.png | Bin 0 -> 2047 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/img/octocat.png diff --git a/docs/assets/img/octocat.png b/docs/assets/img/octocat.png new file mode 100644 index 0000000000000000000000000000000000000000..5c0b9cd08c744c62de43155fda326683b9e5b5d1 GIT binary patch literal 2047 zcmaJ?X;f2Z8V&>jLy<*9MG7%dq%7G3Bp5JcA!&(+C29m*F3AlEkldJDNJuFYKt<4W z+$x|I15{iPq>iYyrN%0vwhq*BU}O`hA|Q%d98{>&8!L8x40F%D_xry0ywCG)&pBU7 z{OVX&j1LBdLb(bB+(cwuY5SZVkw0_#t`=Dq!#oL`1j%7NpaoHE8I%TMg(@H&OauX0 z?v@)Mf35Qk6Sh#g` z5lN)sfC{C+s0EXZtHn}drj#MWMMq&*8kh)y3WNcyL6xP}F%2x-TV5uzx0#7J>{}N& zlZE>uDTyc^%Yn2YmQJ9CN=algHY|)lrqRQ~$RSt?iA*7qkT)!pOk>i+n3Qnry9b9v z)5_$`L@xhbEab$(DPUN`Bog&{JwZ<;K-zR7nZaP#I4G1*#3NLftA+tXs9J}gVc>!~ zsaC0hm5>^1V+7KmY?y^ZGX0|jmF7LITKBF^NW+K*Ktm)GNVbw@97Ur4@2XP0_twFQ z;Gg;aPhy=oR|66gK^>H>l_GL7^PB2)S&rp=<0=robz~t987= zJHPRV$H3lYd&FD4xa+G65|cf7#Gp%FjvfoxTwYfZ?oJ>EH|4&ddB-Rx?PpGKoH?Za zc;kv>z^%z?+lhpzt~bTsxO6vCKTX&7^hW0Nw{6Igr#~65jMV>~HQ8`$1g209-MV%* z>zAR_$Wq5Z?~JV{t2~FN`+8r6hB$9$wpgwgQY^yV=%CooZuhk5o_+IEfb*B7g9nN^ zmn?sak5Y^MvF#;++A2nT`6%h~)oOw{**Z`-d87Shl>N=^2dZ($;)nX>M`%Gz=N9*d zH@gq}j}{&;%PTl|*7!kwv|~$tVA8S5`%TJr<*oS+tUPoJT(JF>ovP@jMW(>)M6sw3*6vy>RhvxPkJW{2T}vOVoTj8z3yl4G#W~- zHp;G8V0;Z+JIB7Rf^XUvg8Fiq!>)&&^z<)!2YIZq#_Oq8T_QjC%LnZGAM#C53hL$O9{rRXz{uC9+#Rp!Qj4lL zru8S1@~DHrnHo>DKiSi8Va$DEP0YVq+m~Ol4tuHsJA{ii)W`H5{@ze-X(NF`v3GX~ z^B&dblR6bcOt2dhD$0oaoSMp%1D|?}y?$t%vSigaj8Upy0Ozlw4xe=l+C2EEnWYj< zS2PcgSkxPRR_%YFc+v531Qb~MIBxxKZXG=peSX{SuaCMw;aCr8&)s>pUl8dQ>^2y) zuG!=!`#4AEk+gRDigD2ybF7KB!~54*QRjq7StF<%%`?i&Mw%>3RxTe??&RQTr5|<;Yea~zQyC6G~oAJ}mIwBqRr zhl#v`M*)W_P6d^l@_RC+f~*q-8F&e_B!dv>8%KQo$k z=1TrCcL9~g63lSSkH?rr&?ARftDLm`EO41*qfAXE-_pbW!z_YKm_C4~qobRcdIDhfjn-0#0hUo>HQ71=K&o`#7dSSbgg}l|= JhM3KTzXJ?0H8ubM literal 0 HcmV?d00001 From 3d74c97615bd92447626b975bce4be640337dc31 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:36:36 -0400 Subject: [PATCH 061/440] Update index.md --- docs/_includes/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 5d37ac95..1f50e5da 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -1,7 +1,5 @@ -{% include navigation.html %} - Welcome to the technical documentation for the GC Forms API [Continue in English](https://cds-snc.github.io/forms-api/home) Bienvenue à la documentation technique pour l'API de Formulaire GC -[Continuer en français]([https://cds-snc.github.io/forms-api/accueil) +[Continuer en français](https://cds-snc.github.io/forms-api/accueil) From b5190e42331a63c3e51d9635f766c3ca98495c8b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:40:13 -0400 Subject: [PATCH 062/440] Update main.css --- docs/assets/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 25c1a606..768f1fbb 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -52,9 +52,9 @@ strong { .site-title { font-size: 1.625em; - font-family: "Avenir Next", Arial, sans-serif; + font-family: "Noto Sans", Arial, sans-serif; font-weight: normal; - color: #919395; + color: vc; margin: 0; line-height: 1.2941176470588236; display: inline-block; From fa35323909aa7200d9456eac04bd444397a61b5a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:42:40 -0400 Subject: [PATCH 063/440] Create getting-started.md --- docs/_pages/en/getting-started.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/getting-started.md diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md new file mode 100644 index 00000000..5df09997 --- /dev/null +++ b/docs/_pages/en/getting-started.md @@ -0,0 +1 @@ +Page 2 From 5cbc1dcc0735f399d55625705fada37f5ab36630 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:44:58 -0400 Subject: [PATCH 064/440] Update _config.yml --- docs/_config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 74bc3654..f08a2f84 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,3 +1,8 @@ +remote_theme: pages-themes/minimal@v0.2.0 +plugins: +- jekyll-remote-theme # add this line to the plugins list if you already have one + + title: GC Forms API Documentation description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. theme: jekyll-theme-minimal @@ -40,7 +45,6 @@ repos: description: GC Forms API url: https://github.com/cds-snc/forms-api - # Style Variables brand_color: "#FFCC3D" From ee8929f6685a68166698c6d1b826cb71d13be880 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:45:20 -0400 Subject: [PATCH 065/440] Update Gemfile --- docs/Gemfile | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/Gemfile b/docs/Gemfile index 0c8671cd..75d9835f 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -1,3 +1,2 @@ source "https://rubygems.org" - gem "github-pages", group: :jekyll_plugins From b7453265365ff0343da576be5f3aa39b9145413a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:49:17 -0400 Subject: [PATCH 066/440] Update _config.yml --- docs/_config.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index f08a2f84..ea5568a4 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -2,7 +2,6 @@ remote_theme: pages-themes/minimal@v0.2.0 plugins: - jekyll-remote-theme # add this line to the plugins list if you already have one - title: GC Forms API Documentation description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. theme: jekyll-theme-minimal @@ -27,12 +26,12 @@ subtitle: How to retrieve form submissions from an API endpoint # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/api-documentation' +baseurl: '/forms-api' # Author/Organization info to be displayed in the templates author: - name: Canadian Digital Service - url: https://digital.canada.ca + name: GC Forms + url: https://articles.alpha.canada.ca/forms-formulaires/ # Point the logo URL at a file in your repo or hosted elsewhere by your organization logourl: @@ -46,7 +45,7 @@ repos: url: https://github.com/cds-snc/forms-api # Style Variables -brand_color: "#FFCC3D" +brand_color: "#26374A" # Offline caching offline_cache: false From ffeaa38de5385ad6d9c5610ad4f9867754aabd0f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:50:13 -0400 Subject: [PATCH 067/440] Update _config.yml --- docs/_config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index ea5568a4..aa43cd44 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,10 +1,8 @@ remote_theme: pages-themes/minimal@v0.2.0 plugins: - jekyll-remote-theme # add this line to the plugins list if you already have one - title: GC Forms API Documentation description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. -theme: jekyll-theme-minimal # Base configuration From 5a034b7ac253f5fca015d49ce8aa495efeba62f3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:54:27 -0400 Subject: [PATCH 068/440] Update translations.yml --- docs/_data/translations.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index f1c3c1a8..d8ec538a 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,22 +1,22 @@ en: homepage-tag-line: "GC Forms API" - cds-snc: "Canadian Digital Service" - cds-snc-url: "https://digital.canada.ca" + cds-snc: "GC Forms" + cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" - built-by: "This project was built by the" + built-by: "This documentation was built for developers using" contribute: "Contribute to this documentation" repo: "Repository" language: "Français" homepage-slug: "/home/" - site-name: "GC Forms - API Documentation" + site-name: "GC Forms API - Technical documentation" fr: homepage-tag-line: "API Formulaires GC" cds-snc: "Service numérique canadien" cds-snc-url: "https://numerique.canada.ca" hosting: "Hébergé dans" - built-by: "Ce projet a été élaboré par le" + built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" contribute: "Contribuer à cette documentation" repo: "Référentiel" language: "English" homepage-slug: "/accueil/" - site-name: "Formulaires GC - Documentation API" + site-name: "Documentation technique - API Formulaires GC" From 886c2ef1391b94b101bf2979d1fab441dc7b5a96 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:55:28 -0400 Subject: [PATCH 069/440] Update index.md --- docs/_includes/index.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 1f50e5da..5722bb24 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -1,5 +1,21 @@ -Welcome to the technical documentation for the GC Forms API -[Continue in English](https://cds-snc.github.io/forms-api/home) +theme: jekyll-theme-minimal -Bienvenue à la documentation technique pour l'API de Formulaire GC -[Continuer en français](https://cds-snc.github.io/forms-api/accueil) +# GC Forms API Documentation +(Version 1 - Pilot/trial - Limited to prototyping partners only) + +## Welcome + +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + +Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. + +## Overview + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + +This first version of the documentation includes what you need to know about: +- Getting started +- Authentication +- Making requests +- Monitoring +- Getting support From 74d5837dd2dc762b2b010ba66665a35fbf2f5bdb Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:56:20 -0400 Subject: [PATCH 070/440] Update index.md --- docs/_includes/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 5722bb24..618c3bc3 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -1,5 +1,3 @@ -theme: jekyll-theme-minimal - # GC Forms API Documentation (Version 1 - Pilot/trial - Limited to prototyping partners only) From b28361871440066b956170d3be8f7c47415fec25 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:56:43 -0400 Subject: [PATCH 071/440] Update index.md --- docs/_includes/index.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 618c3bc3..e85b7641 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -1,6 +1,3 @@ -# GC Forms API Documentation -(Version 1 - Pilot/trial - Limited to prototyping partners only) - ## Welcome Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. From 9c19a5dc35a3bfacc670b36296c16fdb66abb76c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:57:29 -0400 Subject: [PATCH 072/440] Update index.md --- docs/_includes/index.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index e85b7641..1ea29bd0 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -7,10 +7,3 @@ Our goal is to guide you through setting up an initial integration and securely ## Overview The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. - -This first version of the documentation includes what you need to know about: -- Getting started -- Authentication -- Making requests -- Monitoring -- Getting support From b657f9e1ad2fcda2ae79c58c8b704e66dd05e8ec Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:00:56 -0400 Subject: [PATCH 073/440] Update index.md --- docs/_includes/index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 1ea29bd0..39fd6e93 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -3,7 +3,3 @@ Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. - -## Overview - -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. From 998faf05ea85b89d4ba71e319fb44aba0b960159 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:05:51 -0400 Subject: [PATCH 074/440] Update default.html --- docs/_layouts/default.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index 5c2ddfba..e798c19c 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -59,7 +59,6 @@

{{ site From 55cc4117d0b69595752bc5f7b94c48fb06ab91d5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:07:33 -0400 Subject: [PATCH 075/440] Update main.css --- docs/assets/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 768f1fbb..c9c95031 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -35,7 +35,7 @@ Typography */ body { - font-family: "Avenir Next", Arial, sans-serif; + font-family: "--gcds-font-families-heading", Lato, sans-serif; font-weight: 400; font-style: normal; line-height: 1.466666667; From 63f2f561910f6e0d07febec2096884c97db8715a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:11:24 -0400 Subject: [PATCH 076/440] Update main.css --- docs/assets/css/main.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index c9c95031..4de1ff15 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -35,7 +35,7 @@ Typography */ body { - font-family: "--gcds-font-families-heading", Lato, sans-serif; + font-family: "Noto Sans", Noto Sans, sans-serif; font-weight: 400; font-style: normal; line-height: 1.466666667; @@ -46,13 +46,13 @@ h3, h4, h5, strong { - font-family: "Avenir Next Demi", "Avenir Next", Arial, sans-serif; + font-family: "Noto Sans", "Noto Sans", Noto Sans, sans-serif; font-weight: 600; } .site-title { font-size: 1.625em; - font-family: "Noto Sans", Arial, sans-serif; + font-family: "Noto Sans", Noto Sans, sans-serif; font-weight: normal; color: vc; margin: 0; @@ -347,7 +347,7 @@ li h4 { } .license { - font-family: "Avenir Next Demi", Arial, sans-serif; + font-family: "Noto Sans", Noto Sans, sans-serif; font-weight: normal; font-style: normal; } From 10291679ce13a85331f3be9b4d9290dfb9b8b0f8 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:12:37 -0400 Subject: [PATCH 077/440] Update and rename accueil.md to getting-started.md --- docs/_includes/accueil.md | 1 - docs/_includes/getting-started.md | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 docs/_includes/accueil.md create mode 100644 docs/_includes/getting-started.md diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md deleted file mode 100644 index 25a391e6..00000000 --- a/docs/_includes/accueil.md +++ /dev/null @@ -1 +0,0 @@ -French home diff --git a/docs/_includes/getting-started.md b/docs/_includes/getting-started.md new file mode 100644 index 00000000..e5d12073 --- /dev/null +++ b/docs/_includes/getting-started.md @@ -0,0 +1 @@ +Getting started From 9b59e425cb9629d122e9d79c6adfaf7dec58a6c0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:16:14 -0400 Subject: [PATCH 078/440] Update translations.yml --- docs/_data/translations.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index d8ec538a..4491a9f5 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,22 +1,20 @@ en: - homepage-tag-line: "GC Forms API" + homepage-tag-line: "Terchnical documentation" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" - hosting: "Hosted on" built-by: "This documentation was built for developers using" contribute: "Contribute to this documentation" repo: "Repository" language: "Français" - homepage-slug: "/home/" - site-name: "GC Forms API - Technical documentation" + homepage-slug: "/" + site-name: "GC Forms data retrieval API" fr: - homepage-tag-line: "API Formulaires GC" - cds-snc: "Service numérique canadien" - cds-snc-url: "https://numerique.canada.ca" - hosting: "Hébergé dans" + homepage-tag-line: "Documentation technique" + cds-snc: "Formulaires GC" + cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr" built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" contribute: "Contribuer à cette documentation" repo: "Référentiel" language: "English" homepage-slug: "/accueil/" - site-name: "Documentation technique - API Formulaires GC" + site-name: "API de récupération des données de Formulaires GC" From ff2da585101c95f761437ee344e4cb609557b327 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:18:01 -0400 Subject: [PATCH 079/440] Update index.html --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index f5ecf87a..397e76c7 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,7 +1,7 @@ --- layout: default lang: en -trans_url: /accueil +trans_url: /fr --- {% capture index %}{% include index.md %}{% endcapture %} From 99cc97851068723b52f04b8ab341d418a9abfc9d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:19:03 -0400 Subject: [PATCH 080/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index aa43cd44..d1bcbb99 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -24,7 +24,7 @@ subtitle: How to retrieve form submissions from an API endpoint # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api' +baseurl: '/cds-snc/forms-api' # Author/Organization info to be displayed in the templates author: From 0aa28894de04b62a247369a3b3995954ff7b3e5e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:20:01 -0400 Subject: [PATCH 081/440] Update translations.yml --- docs/_data/translations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 4491a9f5..72bbdcb6 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -6,7 +6,7 @@ en: contribute: "Contribute to this documentation" repo: "Repository" language: "Français" - homepage-slug: "/" + homepage-slug: "/home/" site-name: "GC Forms data retrieval API" fr: homepage-tag-line: "Documentation technique" From ec85fb8099b8367546393ea5f6cea761a9da955e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:20:09 -0400 Subject: [PATCH 082/440] Update translations.yml --- docs/_data/translations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 72bbdcb6..cc77fb38 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Terchnical documentation" + homepage-tag-line: "Technical documentation" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" built-by: "This documentation was built for developers using" From 473c1e7b090edd2189fc4f7b22f1afc64ab77c88 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:20:57 -0400 Subject: [PATCH 083/440] Update menu.yml --- docs/_data/menu.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index cb010077..cfbe4e21 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,7 +1,7 @@ en: home: name: "Home" - url: "/home/" + url: "/" getting-started: name: "Getting started" url: "/getting-started/" @@ -21,7 +21,7 @@ en: fr: accueil: name: "Accueil" - url: "/accueil/" + url: "/fr" getting-started: name: "Pour commencer" url: "/pour-commencer/" From f6a9649020f5d9dbb5d6b0439d25b7781f8baf0c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:21:25 -0400 Subject: [PATCH 084/440] Update translations.yml --- docs/_data/translations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index cc77fb38..ce7f237c 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -11,7 +11,7 @@ en: fr: homepage-tag-line: "Documentation technique" cds-snc: "Formulaires GC" - cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr" + cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" contribute: "Contribuer à cette documentation" repo: "Référentiel" From c34f22bf14f04841f1c17f9e087437f0f1f229b3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:21:59 -0400 Subject: [PATCH 085/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index ce7f237c..062ff700 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -7,7 +7,7 @@ en: repo: "Repository" language: "Français" homepage-slug: "/home/" - site-name: "GC Forms data retrieval API" + site-name: "API Documentation - GC Forms" fr: homepage-tag-line: "Documentation technique" cds-snc: "Formulaires GC" @@ -17,4 +17,4 @@ fr: repo: "Référentiel" language: "English" homepage-slug: "/accueil/" - site-name: "API de récupération des données de Formulaires GC" + site-name: "Documentation API - Formulaires GC" From b7cb2a45062bbc8227f10fb1d8c7a179d3f259ce Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:23:12 -0400 Subject: [PATCH 086/440] Delete docs/_includes/navigation.html --- docs/_includes/navigation.html | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 docs/_includes/navigation.html diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html deleted file mode 100644 index 883f61a7..00000000 --- a/docs/_includes/navigation.html +++ /dev/null @@ -1,11 +0,0 @@ -

Table of contents

-{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} -{% for cat in mydocs %} -

{{ cat.name | capitalize }}

-
    - {% assign items = cat.items | sort: 'title' %} - {% for item in items %} -
  • {{ item.title }}
  • - {% endfor %} -
-{% endfor %} From 5864171a54dab621b168c2c72b249a8d31a43ed7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:23:19 -0400 Subject: [PATCH 087/440] Delete docs/_includes/navigation-fr.html --- docs/_includes/navigation-fr.html | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 docs/_includes/navigation-fr.html diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html deleted file mode 100644 index 1beb8e27..00000000 --- a/docs/_includes/navigation-fr.html +++ /dev/null @@ -1,11 +0,0 @@ -

Table des matières

-{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} -{% for cat in mydocs %} -

{{ cat.name | capitalize }}

-
    - {% assign items = cat.items | sort: 'title' %} - {% for item in items %} -
  • {{ item.title }}
  • - {% endfor %} -
-{% endfor %} From 20db542d2995818492c00eea6540f3063d721086 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:23:29 -0400 Subject: [PATCH 088/440] Delete docs/_includes/home.md --- docs/_includes/home.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_includes/home.md diff --git a/docs/_includes/home.md b/docs/_includes/home.md deleted file mode 100644 index 7f93ab9a..00000000 --- a/docs/_includes/home.md +++ /dev/null @@ -1 +0,0 @@ -Placeholder text From 83a7f1d800332cb5a85ea7adacb4f75d97e8aab5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:23:37 -0400 Subject: [PATCH 089/440] Delete docs/_includes/getting-started.md --- docs/_includes/getting-started.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_includes/getting-started.md diff --git a/docs/_includes/getting-started.md b/docs/_includes/getting-started.md deleted file mode 100644 index e5d12073..00000000 --- a/docs/_includes/getting-started.md +++ /dev/null @@ -1 +0,0 @@ -Getting started From adb79b8e8913ac084eb5d69fda0eebba644964ce Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:25:20 -0400 Subject: [PATCH 090/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 5df09997..9bc2b3d9 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -1 +1 @@ -Page 2 +GETTING STARTED From bc41e8ac06954ea818178937280f65d27c657de8 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:26:12 -0400 Subject: [PATCH 091/440] Update main.css --- docs/assets/css/main.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 4de1ff15..d437920c 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -35,7 +35,7 @@ Typography */ body { - font-family: "Noto Sans", Noto Sans, sans-serif; + font-family: "Noto Sans", sans-serif; font-weight: 400; font-style: normal; line-height: 1.466666667; @@ -46,13 +46,13 @@ h3, h4, h5, strong { - font-family: "Noto Sans", "Noto Sans", Noto Sans, sans-serif; + font-family: "Noto Sans", sans-serif; font-weight: 600; } .site-title { font-size: 1.625em; - font-family: "Noto Sans", Noto Sans, sans-serif; + font-family: "Noto Sans", sans-serif; font-weight: normal; color: vc; margin: 0; From 1d08f9405092d947d7219feb3194a0da8f46c490 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:27:39 -0400 Subject: [PATCH 092/440] Update main.css --- docs/assets/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index d437920c..11f28bf1 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -46,13 +46,13 @@ h3, h4, h5, strong { - font-family: "Noto Sans", sans-serif; + font-family: "Noto Sans"; font-weight: 600; } .site-title { font-size: 1.625em; - font-family: "Noto Sans", sans-serif; + font-family: "Noto Sans"; font-weight: normal; color: vc; margin: 0; From 925ea04555783db9a061e7436c5435548672a09d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:28:50 -0400 Subject: [PATCH 093/440] Update main.css --- docs/assets/css/main.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 11f28bf1..1a85a3a8 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -12,6 +12,8 @@ Normalize the box model ================================== */ + + *, *:before, *:after { From 4a03393d333822b5e5a20868a7b41213d697a99f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:29:13 -0400 Subject: [PATCH 094/440] Update main.css --- docs/assets/css/main.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 1a85a3a8..6531bf70 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -12,8 +12,6 @@ Normalize the box model ================================== */ - - *, *:before, *:after { @@ -35,6 +33,7 @@ html, body { Typography ================================== */ + body { font-family: "Noto Sans", sans-serif; From 6a0703297821ba5700008de45b02be837c354ab0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:30:09 -0400 Subject: [PATCH 095/440] Update main.css --- docs/assets/css/main.css | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 6531bf70..11f28bf1 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -33,7 +33,6 @@ html, body { Typography ================================== */ - body { font-family: "Noto Sans", sans-serif; From f361a2aa1f977b8abe23c27958df86f40d62bd90 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:33:39 -0400 Subject: [PATCH 096/440] Update style.scss --- docs/assets/css/style.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss index 5742f930..9ef426e2 100644 --- a/docs/assets/css/style.scss +++ b/docs/assets/css/style.scss @@ -2,3 +2,14 @@ --- @import "{{ site.theme }}"; + + + + From 4fbb000dbcbd458df7fb8200099ce0455c15c2e3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:34:36 -0400 Subject: [PATCH 097/440] Create head-custom-google-analytics.html --- docs/_includes/head-custom-google-analytics.html | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_includes/head-custom-google-analytics.html diff --git a/docs/_includes/head-custom-google-analytics.html b/docs/_includes/head-custom-google-analytics.html new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_includes/head-custom-google-analytics.html @@ -0,0 +1 @@ + From d1568071c700428cd2eec6aa72c4e4f7ddf74326 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:35:14 -0400 Subject: [PATCH 098/440] Update head-custom-google-analytics.html --- docs/_includes/head-custom-google-analytics.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/_includes/head-custom-google-analytics.html b/docs/_includes/head-custom-google-analytics.html index 8b137891..8a3ae5c9 100644 --- a/docs/_includes/head-custom-google-analytics.html +++ b/docs/_includes/head-custom-google-analytics.html @@ -1 +1,10 @@ - +{% if site.google_analytics %} + +{% endif %} From e5d8909c40f988266ba63ee55da533f16940cb86 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:35:40 -0400 Subject: [PATCH 099/440] Create head-custom.html --- docs/_includes/head-custom.html | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docs/_includes/head-custom.html diff --git a/docs/_includes/head-custom.html b/docs/_includes/head-custom.html new file mode 100644 index 00000000..f7187e79 --- /dev/null +++ b/docs/_includes/head-custom.html @@ -0,0 +1,9 @@ + + + +{% include head-custom-google-analytics.html %} + + + + + From d5423fbf2ba0f6237a91028d0698cb9c273c9652 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:38:09 -0400 Subject: [PATCH 100/440] Update index.html --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index 397e76c7..f5ecf87a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,7 +1,7 @@ --- layout: default lang: en -trans_url: /fr +trans_url: /accueil --- {% capture index %}{% include index.md %}{% endcapture %} From 4c71d5ae4c9a322f491c00f756e2a4954fc80753 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:40:12 -0400 Subject: [PATCH 101/440] Update _config.yml --- docs/_config.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index d1bcbb99..81e7ce7e 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,11 +1,7 @@ +# Base configuration remote_theme: pages-themes/minimal@v0.2.0 plugins: - jekyll-remote-theme # add this line to the plugins list if you already have one -title: GC Forms API Documentation -description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. - - -# Base configuration exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] markdown: kramdown highlighter: rouge @@ -16,15 +12,15 @@ collections: permalink: /:path/ # Title -name: GC Forms API Documentation -subtitle: How to retrieve form submissions from an API endpoint +title: GC Forms API Documentation +description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. # When using this template with a project page set the baseurl to '/project-name' # For user/organization pages set this to an empty string # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/cds-snc/forms-api' +baseurl: 'forms-api/docs' # Author/Organization info to be displayed in the templates author: From 2e3c0d00f80e9f631ac1ced5eb19b49d7e4619bd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:41:23 -0400 Subject: [PATCH 102/440] Delete docs/assets/img/1 --- docs/assets/img/1 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/assets/img/1 diff --git a/docs/assets/img/1 b/docs/assets/img/1 deleted file mode 100644 index d00491fd..00000000 --- a/docs/assets/img/1 +++ /dev/null @@ -1 +0,0 @@ -1 From f980848e56e4dc235ab4a7b49a5ce3513493ee53 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:41:52 -0400 Subject: [PATCH 103/440] Update main.css --- docs/assets/css/main.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 11f28bf1..bfa5968c 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -35,7 +35,7 @@ Typography */ body { - font-family: "Noto Sans", sans-serif; + font-family: "Arial", sans-serif; font-weight: 400; font-style: normal; line-height: 1.466666667; @@ -46,13 +46,13 @@ h3, h4, h5, strong { - font-family: "Noto Sans"; + font-family: "Arial"; font-weight: 600; } .site-title { font-size: 1.625em; - font-family: "Noto Sans"; + font-family: "Arial"; font-weight: normal; color: vc; margin: 0; From 015e8dd8bfc76991d92fc9ac18d3b49bdd607d14 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:43:54 -0400 Subject: [PATCH 104/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 81e7ce7e..d7d1e4d2 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -20,7 +20,7 @@ description: This documentation is for developers who want to use the GC Forms A # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: 'forms-api/docs' +baseurl: '/forms-api' # Author/Organization info to be displayed in the templates author: From b8e49aca9d41162c5084e76e77c4c8917e583c7d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:46:43 -0400 Subject: [PATCH 105/440] Delete docs/_includes/head-custom-google-analytics.html --- docs/_includes/head-custom-google-analytics.html | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 docs/_includes/head-custom-google-analytics.html diff --git a/docs/_includes/head-custom-google-analytics.html b/docs/_includes/head-custom-google-analytics.html deleted file mode 100644 index 8a3ae5c9..00000000 --- a/docs/_includes/head-custom-google-analytics.html +++ /dev/null @@ -1,10 +0,0 @@ -{% if site.google_analytics %} - -{% endif %} From 5f9257ce012d55b14af1238f6393f2e62597e8b9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:46:51 -0400 Subject: [PATCH 106/440] Delete docs/_includes/head-custom.html --- docs/_includes/head-custom.html | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 docs/_includes/head-custom.html diff --git a/docs/_includes/head-custom.html b/docs/_includes/head-custom.html deleted file mode 100644 index f7187e79..00000000 --- a/docs/_includes/head-custom.html +++ /dev/null @@ -1,9 +0,0 @@ - - - -{% include head-custom-google-analytics.html %} - - - - - From 0d8b465641d0e4487bbd7812b26b5fe87d9fc73e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:47:56 -0400 Subject: [PATCH 107/440] Update main.css --- docs/assets/css/main.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index bfa5968c..3330ca9c 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -35,7 +35,7 @@ Typography */ body { - font-family: "Arial", sans-serif; + font-family: "Avenir Next", Arial, sans-serif; font-weight: 400; font-style: normal; line-height: 1.466666667; @@ -46,13 +46,13 @@ h3, h4, h5, strong { - font-family: "Arial"; + font-family: "Avenir Next Demi", "Avenir Next", Arial, sans-serif; font-weight: 600; } .site-title { font-size: 1.625em; - font-family: "Arial"; + font-family: "Avenir Next", Arial, sans-serif; font-weight: normal; color: vc; margin: 0; From 08335aec44f35f1b8be69b60b2006fb7dd33e59c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:48:29 -0400 Subject: [PATCH 108/440] Update menu.yml --- docs/_data/menu.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index cfbe4e21..cb010077 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,7 +1,7 @@ en: home: name: "Home" - url: "/" + url: "/home/" getting-started: name: "Getting started" url: "/getting-started/" @@ -21,7 +21,7 @@ en: fr: accueil: name: "Accueil" - url: "/fr" + url: "/accueil/" getting-started: name: "Pour commencer" url: "/pour-commencer/" From 8352e29ce4e665cb8d187cc22ffc7ba607c3dfb3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:49:00 -0400 Subject: [PATCH 109/440] Update repos.yml --- docs/_data/repos.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/_data/repos.yml b/docs/_data/repos.yml index e9c9f6e5..1123fa60 100644 --- a/docs/_data/repos.yml +++ b/docs/_data/repos.yml @@ -1,8 +1,8 @@ en: -- name: +- name: GC Forms API description: - url: + url: https://github.com/cds-snc/forms-api/ fr: -- name: +- name: API Formulaires GC description: - url: + url: https://github.com/cds-snc/forms-api/ From 00b1a17264056a9ce129a1feec3f41c745b82054 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:50:24 -0400 Subject: [PATCH 110/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index d7d1e4d2..dbad0b63 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -20,7 +20,7 @@ description: This documentation is for developers who want to use the GC Forms A # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api' +baseurl: '/forms-api/docs' # Author/Organization info to be displayed in the templates author: From 3af4ebdc4ecbbd7268a9c5f997067cdd4f0876c8 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:54:27 -0400 Subject: [PATCH 111/440] Update index.html --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index f5ecf87a..1c88332c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,6 +3,6 @@ lang: en trans_url: /accueil --- - +{% include navigation.html %} {% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From f37a7d9f69b0c7a3b3be57f673416f30ef67d4fd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:56:44 -0400 Subject: [PATCH 112/440] Update _config.yml --- docs/_config.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index dbad0b63..8972d958 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,7 +1,4 @@ # Base configuration -remote_theme: pages-themes/minimal@v0.2.0 -plugins: -- jekyll-remote-theme # add this line to the plugins list if you already have one exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] markdown: kramdown highlighter: rouge @@ -11,21 +8,29 @@ collections: output: true permalink: /:path/ +# Theme +remote_theme: pages-themes/minimal@v0.2.0 +plugins: +- jekyll-remote-theme # add this line to the plugins list if you already have one + # Title -title: GC Forms API Documentation -description: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. +name: GC Forms API Documentation +subtitle: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. # When using this template with a project page set the baseurl to '/project-name' # For user/organization pages set this to an empty string # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api/docs' +baseurl: '/forms-api' # Author/Organization info to be displayed in the templates author: name: GC Forms url: https://articles.alpha.canada.ca/forms-formulaires/ +author2: + name: Canadian Digital Service + url: https://digital.canada.ca # Point the logo URL at a file in your repo or hosted elsewhere by your organization logourl: From af629bc4d64ff36791e5188b78fdaabeb0d01019 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:57:55 -0400 Subject: [PATCH 113/440] Update Gemfile --- docs/Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Gemfile b/docs/Gemfile index 75d9835f..0c8671cd 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -1,2 +1,3 @@ source "https://rubygems.org" + gem "github-pages", group: :jekyll_plugins From bbd11c099436f44a2544cf4204563c70601130a7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:01:23 -0400 Subject: [PATCH 114/440] Update main.css --- docs/assets/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 3330ca9c..bc3d6f1f 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -347,7 +347,7 @@ li h4 { } .license { - font-family: "Noto Sans", Noto Sans, sans-serif; + font-family: "Avenir Next Demi", Arial, sans-serif; font-weight: normal; font-style: normal; } From d2be838d3b097d464e24edb195bed727f5248685 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:02:12 -0400 Subject: [PATCH 115/440] Update style.scss --- docs/assets/css/style.scss | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss index 9ef426e2..5742f930 100644 --- a/docs/assets/css/style.scss +++ b/docs/assets/css/style.scss @@ -2,14 +2,3 @@ --- @import "{{ site.theme }}"; - - - - From 6064978c8397a2aa2ff94b33e43153e45bd82be1 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:05:26 -0400 Subject: [PATCH 116/440] Create navigation-fr.html --- docs/_includes/navigation-fr.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_includes/navigation-fr.html diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html new file mode 100644 index 00000000..1beb8e27 --- /dev/null +++ b/docs/_includes/navigation-fr.html @@ -0,0 +1,11 @@ +

Table des matières

+{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} +{% for cat in mydocs %} +

{{ cat.name | capitalize }}

+
    + {% assign items = cat.items | sort: 'title' %} + {% for item in items %} +
  • {{ item.title }}
  • + {% endfor %} +
+{% endfor %} From e479fd0e07e518d47723d70433a42afa8ab9589b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:05:44 -0400 Subject: [PATCH 117/440] Create navigation.html --- docs/_includes/navigation.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_includes/navigation.html diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html new file mode 100644 index 00000000..883f61a7 --- /dev/null +++ b/docs/_includes/navigation.html @@ -0,0 +1,11 @@ +

Table of contents

+{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} +{% for cat in mydocs %} +

{{ cat.name | capitalize }}

+
    + {% assign items = cat.items | sort: 'title' %} + {% for item in items %} +
  • {{ item.title }}
  • + {% endfor %} +
+{% endfor %} From 36d9f76254b635ba27d64f38510c54c41036aeee Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:06:35 -0400 Subject: [PATCH 118/440] Create accueil.md --- docs/_includes/accueil.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_includes/accueil.md diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md new file mode 100644 index 00000000..391a4f74 --- /dev/null +++ b/docs/_includes/accueil.md @@ -0,0 +1 @@ +# Accueil From 7bc8cf4fc6b93d06515806d39711aa69e8bf90db Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:07:18 -0400 Subject: [PATCH 119/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 8972d958..e928d95a 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -14,7 +14,7 @@ plugins: - jekyll-remote-theme # add this line to the plugins list if you already have one # Title -name: GC Forms API Documentation +name: GC Forms API subtitle: This documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. # When using this template with a project page set the baseurl to '/project-name' From 4c750f898f110911543925b9678d39b1a967b4b7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:10:58 -0400 Subject: [PATCH 120/440] Update translations.yml --- docs/_data/translations.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 062ff700..44c939a4 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Technical documentation" + homepage-tag-line: "" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" built-by: "This documentation was built for developers using" @@ -7,9 +7,9 @@ en: repo: "Repository" language: "Français" homepage-slug: "/home/" - site-name: "API Documentation - GC Forms" + site-name: "GC Forms API" fr: - homepage-tag-line: "Documentation technique" + homepage-tag-line: "" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" @@ -17,4 +17,4 @@ fr: repo: "Référentiel" language: "English" homepage-slug: "/accueil/" - site-name: "Documentation API - Formulaires GC" + site-name: "API Formulaires GC" From adc8c6f75b22add9c329abc7016f9ce8b4bf96d6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:12:19 -0400 Subject: [PATCH 121/440] Update index.md --- docs/_includes/index.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/_includes/index.md b/docs/_includes/index.md index 39fd6e93..a299cce5 100644 --- a/docs/_includes/index.md +++ b/docs/_includes/index.md @@ -1,5 +1 @@ -## Welcome - -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. - -Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. +{% include home.md %} From 2cfa491c4fb0f8dbe2e8f9a76c59d59d79cdc155 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:12:58 -0400 Subject: [PATCH 122/440] Create home.md --- docs/_includes/home.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 docs/_includes/home.md diff --git a/docs/_includes/home.md b/docs/_includes/home.md new file mode 100644 index 00000000..d88dfeae --- /dev/null +++ b/docs/_includes/home.md @@ -0,0 +1,5 @@ +# Welcome + +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + +Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From 99225bdb8cd49198805db082781eedef2d44dd8b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:13:36 -0400 Subject: [PATCH 123/440] Update navigation.html --- docs/_includes/navigation.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html index 883f61a7..6d32fb96 100644 --- a/docs/_includes/navigation.html +++ b/docs/_includes/navigation.html @@ -1,4 +1,3 @@ -

Table of contents

{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} {% for cat in mydocs %}

{{ cat.name | capitalize }}

From 4d0fcd9780200e8766d8c4a0d68426a180e6a34c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:14:22 -0400 Subject: [PATCH 124/440] Update navigation-fr.html --- docs/_includes/navigation-fr.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html index 1beb8e27..3e54f7fc 100644 --- a/docs/_includes/navigation-fr.html +++ b/docs/_includes/navigation-fr.html @@ -1,4 +1,3 @@ -

Table des matières

{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} {% for cat in mydocs %}

{{ cat.name | capitalize }}

From d79bdd6cb03f6adce6d91ffae2802cf192d3c14a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:19:29 -0400 Subject: [PATCH 125/440] Update homepage.html --- docs/_layouts/homepage.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/_layouts/homepage.html b/docs/_layouts/homepage.html index 73dae177..fb296db3 100644 --- a/docs/_layouts/homepage.html +++ b/docs/_layouts/homepage.html @@ -1,4 +1,8 @@ --- layout: default --- +

{{ page.title }}

+ {{ content }} + +{% include repositories.html %} From 579a80f66cb16853f5b7c78d11235bf16a1a9115 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:12:45 -0400 Subject: [PATCH 126/440] Create accueil.html --- docs/accueil.html | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/accueil.html diff --git a/docs/accueil.html b/docs/accueil.html new file mode 100644 index 00000000..2f72d53a --- /dev/null +++ b/docs/accueil.html @@ -0,0 +1,8 @@ +--- +layout: default +lang: fr +trans_url: /home +--- +{% include navigation.html %} +{% capture index %}{% include accueil.md %}{% endcapture %} +{{ index | markdownify }} From 7a1cd1a7c29bc79a705ed2a2b8ed97000932a690 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:13:00 -0400 Subject: [PATCH 127/440] Rename contexte.md to accueil.md --- docs/_pages/fr/{contexte.md => accueil.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/_pages/fr/{contexte.md => accueil.md} (100%) diff --git a/docs/_pages/fr/contexte.md b/docs/_pages/fr/accueil.md similarity index 100% rename from docs/_pages/fr/contexte.md rename to docs/_pages/fr/accueil.md From 7b235e059eb12560845764abed3e742a45605235 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:24:07 -0400 Subject: [PATCH 128/440] Update accueil.md --- docs/_pages/fr/accueil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/accueil.md b/docs/_pages/fr/accueil.md index 8b137891..a2f176a9 100644 --- a/docs/_pages/fr/accueil.md +++ b/docs/_pages/fr/accueil.md @@ -1 +1 @@ - +Accueil From 199cd9241903955b2f68c11cd4304d2ecc745e8d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:25:48 -0400 Subject: [PATCH 129/440] Update default.html --- docs/_layouts/default.html | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index e798c19c..8ce0a582 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -1,8 +1,9 @@ - + + {% if page.title == null %} {{ site.name }} @@ -16,6 +17,7 @@ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css"> <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/syntax.css"> <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/custom.css"> + <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script src="{{ site.baseurl }}/assets/js/respond.min.js"></script> @@ -45,6 +47,22 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site </div> </header> + </head> +<body> + <div class='group'> + <header role="banner"> + <div class='fip-wrapper'> + <div class='wrap' id="fip"> + <div class="flexer"> + <a href="https://www.canada.ca/{{ page.lang }}.html" + class="fip-logo gl-FIP" + aria-label="{{ site.data.translations[page.lang]["canada-website"] }}"> + <object type="image/svg+xml" tabindex="-1" role="img" + data="{{ site.baseurl }}/assets/img/goc-header-logo.svg" + aria-label="{{ site.data.translations[page.lang]["canada-symbol"] }}" + class="goc-logo"></object> + </a> + <div class="wrap content"> {% include sidebar.html %} @@ -55,6 +73,14 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site </div><!-- /.wrap content --> + + <div> + <object type="image/svg+xml" tabindex="-1" role="img" + data="{{ site.baseurl }}/assets/img/goc-footer-logo.svg" + aria-label="{{ site.data.translations[page.lang]["canada-symbol"] }}" + class="canada-logo"></object> + </div> + <footer role="contentinfo"> <div class="wrap"> <p>{{site.data.translations[page.lang].built-by}} <a href="{{ site.data.translations[page.lang].cds-snc-url }}">{{ site.data.translations[page.lang].cds-snc}}</a>.</p> From 8276f445ad201344da73ec491cb1fde06f1dc646 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:33:40 -0400 Subject: [PATCH 130/440] Update home.md --- docs/_includes/home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index d88dfeae..b802293e 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -1,5 +1,5 @@ # Welcome -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From bbccfd7cbe6b9adf4bc7f4b15220dbd91ca38f51 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:34:43 -0400 Subject: [PATCH 131/440] Create getting-started --- docs/_includes/getting-started | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/_includes/getting-started diff --git a/docs/_includes/getting-started b/docs/_includes/getting-started new file mode 100644 index 00000000..e01fc71d --- /dev/null +++ b/docs/_includes/getting-started @@ -0,0 +1,12 @@ +# Getting started + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + +## What you will need + +A GC Forms staging account (used for temporary testing only) +A form set to deliver responses via “Download” in Settings +A few “mock” responses submitted to the form +A target system where you plan on receiving form submission data +An API key (generated by you in Settings > API Access) +Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API From 90d25bce33fe925edaf974a504adea97383c9c4c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:37:46 -0400 Subject: [PATCH 132/440] Delete docs/_pages/en/getting-started.md --- docs/_pages/en/getting-started.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_pages/en/getting-started.md diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md deleted file mode 100644 index 9bc2b3d9..00000000 --- a/docs/_pages/en/getting-started.md +++ /dev/null @@ -1 +0,0 @@ -GETTING STARTED From 8ef61b698b0f22fee83601743f0749455fccbf84 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:38:44 -0400 Subject: [PATCH 133/440] Update getting-started --- docs/_includes/getting-started | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/docs/_includes/getting-started b/docs/_includes/getting-started index e01fc71d..748fb077 100644 --- a/docs/_includes/getting-started +++ b/docs/_includes/getting-started @@ -4,9 +4,24 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev ## What you will need -A GC Forms staging account (used for temporary testing only) -A form set to deliver responses via “Download” in Settings -A few “mock” responses submitted to the form -A target system where you plan on receiving form submission data -An API key (generated by you in Settings > API Access) -Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API +- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) +- A form set to deliver responses via “Download” in Settings +- A few “mock” responses submitted to the form +- A target system where you plan on receiving form submission data +- An API key (generated by you in Settings > API Access) +- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API + +^ No infrastructure development capabilities available? +^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. + +## Getting the API key + +**To create an API key for this initial integration testing:** +1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). +2. Create a draft form. +3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. +4. Click “Generate Key”. +5. Download JSON file that includes the private API key. + +^ **IMPORTANT!** +^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 23b6fa538002aebda039f2d69a2038ce235192e8 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:41:14 -0400 Subject: [PATCH 134/440] Update _config.yml --- docs/_config.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index e928d95a..8a62db69 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -33,14 +33,13 @@ author2: url: https://digital.canada.ca # Point the logo URL at a file in your repo or hosted elsewhere by your organization -logourl: -logoalt: +logourl: https://github.com/cds-snc/platform-forms-client/blob/5c5ec154759b03b815184c04062585748e84d562/components/serverComponents/icons/SiteLogo.tsx#L4 +logoalt: GC Forms logo # Repo list # List repos that you would like to appear on the homepage here repos: - name: forms-api - description: GC Forms API url: https://github.com/cds-snc/forms-api # Style Variables From 6d2f10e53c453707f7e4e8ad9e0138443bd11f88 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:42:08 -0400 Subject: [PATCH 135/440] Update translations.yml --- docs/_data/translations.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 44c939a4..7695ef6b 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -3,8 +3,6 @@ en: cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" built-by: "This documentation was built for developers using" - contribute: "Contribute to this documentation" - repo: "Repository" language: "Français" homepage-slug: "/home/" site-name: "GC Forms API" @@ -13,8 +11,6 @@ fr: cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" - contribute: "Contribuer à cette documentation" - repo: "Référentiel" language: "English" homepage-slug: "/accueil/" site-name: "API Formulaires GC" From 114dfcd6834bbb7d6e346624addd866410c7cd85 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:44:11 -0400 Subject: [PATCH 136/440] Create getting-started.html --- docs/getting-started.html | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/getting-started.html diff --git a/docs/getting-started.html b/docs/getting-started.html new file mode 100644 index 00000000..81a644fc --- /dev/null +++ b/docs/getting-started.html @@ -0,0 +1,8 @@ +--- +layout: default +lang: en +trans_url: /pour-commencer +--- +{% include navigation.html %} +{% capture index %}{% include getting-started.md %}{% endcapture %} +{{ index | markdownify }} From 2990f4a10139985bb211974b37c1715ce3885ef0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:44:49 -0400 Subject: [PATCH 137/440] Update _config.yml --- docs/_config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 8a62db69..5a549d48 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -33,8 +33,7 @@ author2: url: https://digital.canada.ca # Point the logo URL at a file in your repo or hosted elsewhere by your organization -logourl: https://github.com/cds-snc/platform-forms-client/blob/5c5ec154759b03b815184c04062585748e84d562/components/serverComponents/icons/SiteLogo.tsx#L4 -logoalt: GC Forms logo +logourl: # Repo list # List repos that you would like to appear on the homepage here From 3b2d1d21803ac0047465a357bbe7daf10c121842 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:46:02 -0400 Subject: [PATCH 138/440] Update _config.yml --- docs/_config.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 5a549d48..05c792bb 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -32,9 +32,6 @@ author2: name: Canadian Digital Service url: https://digital.canada.ca -# Point the logo URL at a file in your repo or hosted elsewhere by your organization -logourl: - # Repo list # List repos that you would like to appear on the homepage here repos: From c78b4384324a91d296640d43f156dfd61cbf92b6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:47:37 -0400 Subject: [PATCH 139/440] Update default.html --- docs/_layouts/default.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index 8ce0a582..bd142b4e 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -84,7 +84,7 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site <footer role="contentinfo"> <div class="wrap"> <p>{{site.data.translations[page.lang].built-by}} <a href="{{ site.data.translations[page.lang].cds-snc-url }}">{{ site.data.translations[page.lang].cds-snc}}</a>.</p> - <p><a href="https://github.com/cds-snc/pspc-documentation">{{site.data.translations[page.lang].contribute}}.</a></p> + <p><a href="https://github.com/cds-snc/forms-api">{{site.data.translations[page.lang].contribute}}.</a></p> </div><!--/.wrap --> </footer> </div> <!-- /.container --> From 97e3a3d7246ff4276678856be20abfc6e3acb7c0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:50:14 -0400 Subject: [PATCH 140/440] Update translations.yml --- docs/_data/translations.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 7695ef6b..122184dd 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -2,7 +2,10 @@ en: homepage-tag-line: "" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" - built-by: "This documentation was built for developers using" + hosting: "Hosted on" + built-by: "This documentation was built for developers who are using" + contribute: "Contribute to this project" + repo: "Repository language: "Français" homepage-slug: "/home/" site-name: "GC Forms API" @@ -10,7 +13,10 @@ fr: homepage-tag-line: "" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" + hosting: "Hébergé dans" built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" + contribute: "Contribuer à cette documentation" + repo: "Référentiel" language: "English" homepage-slug: "/accueil/" site-name: "API Formulaires GC" From 2ed49bb912406a101beee11349f602dcf9a2f1ca Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:50:38 -0400 Subject: [PATCH 141/440] Update translations.yml --- docs/_data/translations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 122184dd..8ab18868 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -5,7 +5,7 @@ en: hosting: "Hosted on" built-by: "This documentation was built for developers who are using" contribute: "Contribute to this project" - repo: "Repository + repo: "Repository" language: "Français" homepage-slug: "/home/" site-name: "GC Forms API" From f6ea49452163d247e0c5e13afe4293ae0aa53fe2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:54:11 -0400 Subject: [PATCH 142/440] Update repos.yml --- docs/_data/repos.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/_data/repos.yml b/docs/_data/repos.yml index 1123fa60..1907e2b4 100644 --- a/docs/_data/repos.yml +++ b/docs/_data/repos.yml @@ -1,8 +1,8 @@ en: -- name: GC Forms API +- name: description: - url: https://github.com/cds-snc/forms-api/ + url: fr: -- name: API Formulaires GC +- name: description: - url: https://github.com/cds-snc/forms-api/ + url: From 4e86c4445f71591d6e6f806e1ad956b2a987fecb Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:55:36 -0400 Subject: [PATCH 143/440] Delete docs/_includes/getting-started --- docs/_includes/getting-started | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 docs/_includes/getting-started diff --git a/docs/_includes/getting-started b/docs/_includes/getting-started deleted file mode 100644 index 748fb077..00000000 --- a/docs/_includes/getting-started +++ /dev/null @@ -1,27 +0,0 @@ -# Getting started - -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. - -## What you will need - -- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) -- A form set to deliver responses via “Download” in Settings -- A few “mock” responses submitted to the form -- A target system where you plan on receiving form submission data -- An API key (generated by you in Settings > API Access) -- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API - -^ No infrastructure development capabilities available? -^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. - -## Getting the API key - -**To create an API key for this initial integration testing:** -1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). -2. Create a draft form. -3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. -4. Click “Generate Key”. -5. Download JSON file that includes the private API key. - -^ **IMPORTANT!** -^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From ce7a52c35684643c8f53d476e2791d10726291c8 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:55:48 -0400 Subject: [PATCH 144/440] Delete docs/_includes/navigation-fr.html --- docs/_includes/navigation-fr.html | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 docs/_includes/navigation-fr.html diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html deleted file mode 100644 index 3e54f7fc..00000000 --- a/docs/_includes/navigation-fr.html +++ /dev/null @@ -1,10 +0,0 @@ -{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} -{% for cat in mydocs %} -<h3>{{ cat.name | capitalize }}</h3> - <ul> - {% assign items = cat.items | sort: 'title' %} - {% for item in items %} - <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li> - {% endfor %} - </ul> -{% endfor %} From aa9e01faba31604b84c6dba9b1bb1859f2a544a0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:55:58 -0400 Subject: [PATCH 145/440] Delete docs/_includes/navigation.html --- docs/_includes/navigation.html | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 docs/_includes/navigation.html diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html deleted file mode 100644 index 6d32fb96..00000000 --- a/docs/_includes/navigation.html +++ /dev/null @@ -1,10 +0,0 @@ -{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} -{% for cat in mydocs %} -<h3>{{ cat.name | capitalize }}</h3> - <ul> - {% assign items = cat.items | sort: 'title' %} - {% for item in items %} - <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li> - {% endfor %} - </ul> -{% endfor %} From 78c2d607bcefcca8a83ce74ba540814886dfb463 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:57:51 -0400 Subject: [PATCH 146/440] Update repositories.html --- docs/_includes/repositories.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_includes/repositories.html b/docs/_includes/repositories.html index 1716ddc1..989c8163 100644 --- a/docs/_includes/repositories.html +++ b/docs/_includes/repositories.html @@ -13,5 +13,4 @@ <h4>{{ repo.name }}</h4> </li> {% endfor %} </ul> - <p>{{site.data.translations[page.lang].learn-more}} <a href="{{ site.baseurl }}{{site.data.translations[page.lang].code-and-repo-slug}}">{{site.data.translations[page.lang].code-and-repo}}</a>.</p> - </section> + </section> From 94afeaa2ffcd33c33083a2858ee2ca4f206cb57e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:58:11 -0400 Subject: [PATCH 147/440] Create getting-started.md --- docs/_pages/en/getting-started.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 docs/_pages/en/getting-started.md diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md new file mode 100644 index 00000000..748fb077 --- /dev/null +++ b/docs/_pages/en/getting-started.md @@ -0,0 +1,27 @@ +# Getting started + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + +## What you will need + +- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) +- A form set to deliver responses via “Download” in Settings +- A few “mock” responses submitted to the form +- A target system where you plan on receiving form submission data +- An API key (generated by you in Settings > API Access) +- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API + +^ No infrastructure development capabilities available? +^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. + +## Getting the API key + +**To create an API key for this initial integration testing:** +1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). +2. Create a draft form. +3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. +4. Click “Generate Key”. +5. Download JSON file that includes the private API key. + +^ **IMPORTANT!** +^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 3e374d6720002fc0548b6c02532d027c0990175a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:58:47 -0400 Subject: [PATCH 148/440] Create authentication.md --- docs/_pages/en/authentication.md | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/_pages/en/authentication.md diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md new file mode 100644 index 00000000..5552f194 --- /dev/null +++ b/docs/_pages/en/authentication.md @@ -0,0 +1,37 @@ +## Authentication + +### Base URL + +**Now: _Staging_** currently available for prototyping purposes (temporarily) +```https://api.forms-staging.cdssandbox.xyz/``` + +**Later: _Production_** coming soon, not yet avialable for real live forms (eventually) +```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` + +### How authentication works + +The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. + +Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. + +The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. + +#### Integration examples + +Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. + +Use these examples as a reference to generate access tokens in your preferred programming language: +- [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/blob/main/examples/nodejs/accessTokenGenerator.ts) +- [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) +- [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) + +#### Authorization header + +Use this header for each API request to verify it’s you: + +``` +curl \ + --request GET "$FORMS_URL" \ + --header "Authorization: Bearer $ACCESS_TOKEN" +``` From b7cc6bf112cde7d1d1b81ba868e17f3c1c294439 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:59:16 -0400 Subject: [PATCH 149/440] Create making-requests.md --- docs/_pages/en/making-requests.md | 64 +++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 docs/_pages/en/making-requests.md diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md new file mode 100644 index 00000000..37fc870c --- /dev/null +++ b/docs/_pages/en/making-requests.md @@ -0,0 +1,64 @@ +## Making requests + +The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. + +**Query parameters** +The API requests for GC Forms submission data are possible using query parameters such as: + + +- **{formID}** + 25-character alphanumeric string found at the end of the URL for the form or at the start of the + file name of the API key. + For example: ```clzvj8fzb00226o90r2b7l1gt```. + + +- **{SubmissionName}** + 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms + app. + For example: ```e02-08-d732```. + + +- **{ConfirmationCode}** + 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the + GC Forms app. + For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. + +**Examples** + +We’ve developed some examples that you can reference or run the program for, that we hope will help make integration easier. Here are the programming languages currently available: + +- [.NET / C#](https://github.com/cds-snc/forms-api/tree/main/examples/dotnet) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/tree/main/examples/nodejs) +- [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) +- [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) + +### Retrieving **new** form submissions + +#### HTTP request + +This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: + +```GET /forms/{formID}/submission/new``` + +_Note: The status of these form submissions will not change to “Downloaded”._ + +#### Response status + +| Status code | Example message | Meaning / how to fix | +| ----------- | --------------- | -------------------- | +| 200 | [ + ``` { + "name": "05-09-09f4", + "createdAt": 1725553403512 + }, + { + "name": "05-09-9620", + "createdAt": 1725553404965 + }, + { + "name": "05-09-75dc", + "createdAt": 1725553404972 + } +] +``` + | List of new submission names successfully retrieved. From e083235705123cb1c3882444b58223461a4dfd4c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:00:02 -0400 Subject: [PATCH 150/440] Update default.html --- docs/_layouts/default.html | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index bd142b4e..c1c0196e 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -1,9 +1,8 @@ <!DOCTYPE html> -<html lang="{{ page.lang }}"> +<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> <title> {% if page.title == null %} {{ site.name }} @@ -16,14 +15,11 @@ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/normalize.css"> <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css"> <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/syntax.css"> - <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/custom.css"> - <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script src="{{ site.baseurl }}/assets/js/respond.min.js"></script> <![endif]--> - <!-- Global site tag (gtag.js) - Google Analytics --> <!-- Common Google Analytics [UA] setup for CDS GitHub Pages websites --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-102484926-22"></script> <script> @@ -47,22 +43,6 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site </div> </header> - </head> -<body> - <div class='group'> - <header role="banner"> - <div class='fip-wrapper'> - <div class='wrap' id="fip"> - <div class="flexer"> - <a href="https://www.canada.ca/{{ page.lang }}.html" - class="fip-logo gl-FIP" - aria-label="{{ site.data.translations[page.lang]["canada-website"] }}"> - <object type="image/svg+xml" tabindex="-1" role="img" - data="{{ site.baseurl }}/assets/img/goc-header-logo.svg" - aria-label="{{ site.data.translations[page.lang]["canada-symbol"] }}" - class="goc-logo"></object> - </a> - <div class="wrap content"> {% include sidebar.html %} @@ -73,18 +53,11 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site </div><!-- /.wrap content --> - - <div> - <object type="image/svg+xml" tabindex="-1" role="img" - data="{{ site.baseurl }}/assets/img/goc-footer-logo.svg" - aria-label="{{ site.data.translations[page.lang]["canada-symbol"] }}" - class="canada-logo"></object> - </div> - <footer role="contentinfo"> <div class="wrap"> <p>{{site.data.translations[page.lang].built-by}} <a href="{{ site.data.translations[page.lang].cds-snc-url }}">{{ site.data.translations[page.lang].cds-snc}}</a>.</p> - <p><a href="https://github.com/cds-snc/forms-api">{{site.data.translations[page.lang].contribute}}.</a></p> + <p><a href="https://github.com/cds-snc/pspc-documentation">{{site.data.translations[page.lang].contribute}}.</a></p> + <p>{{site.data.translations[page.lang].hosting}} <a href="http://pages.github.com/">GitHub Pages</a>.</p> </div><!--/.wrap --> </footer> </div> <!-- /.container --> From a9eaf127dcdb2b31c688400267171d8a964f8bf2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:00:18 -0400 Subject: [PATCH 151/440] Delete docs/_layouts/homepage.html --- docs/_layouts/homepage.html | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 docs/_layouts/homepage.html diff --git a/docs/_layouts/homepage.html b/docs/_layouts/homepage.html deleted file mode 100644 index fb296db3..00000000 --- a/docs/_layouts/homepage.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: default ---- -<h2 class="page-title">{{ page.title }}</h2> - -{{ content }} - -{% include repositories.html %} From a7bdba3c4a5ca16a3cc9f949843d9cdcc2987ff9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:00:26 -0400 Subject: [PATCH 152/440] Delete docs/_layouts/post.html --- docs/_layouts/post.html | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 docs/_layouts/post.html diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html deleted file mode 100644 index f2e278b0..00000000 --- a/docs/_layouts/post.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: default ---- -<article> - <h2 class="page-title">{{ page.title }}</h2> - <p class="meta">{{ page.date | date_to_string }}</p> - - <div class="post"> - {{ content }} - </div> -</article> From c00ad3664b0bdfe7ad4252151f7e38aacc4aa8ee Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:00:48 -0400 Subject: [PATCH 153/440] Update page.html --- docs/_layouts/page.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html index a467fbbc..635737dd 100644 --- a/docs/_layouts/page.html +++ b/docs/_layouts/page.html @@ -1,6 +1,6 @@ --- layout: default --- -<p><a href="{{ site.baseurl }}{{ site.data.translations[page.lang].homepage-slug }}">← {{site.data.translations[page.lang].toc}}</a></p><p> </p> <h2 class="page-title">{{ page.title }}</h2> + {{ content }} From 1aa73053a7145642d5e68f4026543f469ed438de Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:02:21 -0400 Subject: [PATCH 154/440] Update authentication.md --- docs/_pages/en/authentication.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 5552f194..9e2184b6 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -1,6 +1,12 @@ -## Authentication +--- +layout: page +title: "Authentication" +lang: en +permalink: "/authentication/" +trans_url: "/authentification/" +--- -### Base URL +## Base URL **Now: _Staging_** currently available for prototyping purposes (temporarily) ```https://api.forms-staging.cdssandbox.xyz/``` @@ -8,7 +14,7 @@ **Later: _Production_** coming soon, not yet avialable for real live forms (eventually) ```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` -### How authentication works +## How authentication works The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. @@ -16,7 +22,7 @@ Authentication is done through an opaque token, with basic authorization handled The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. -#### Integration examples +### Integration examples Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. @@ -26,7 +32,7 @@ Use these examples as a reference to generate access tokens in your preferred pr - [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) - [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) -#### Authorization header +### Authorization header Use this header for each API request to verify it’s you: From 9070d31c1efdb3a96484c41a3bf07dfd0a1f3c24 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:02:56 -0400 Subject: [PATCH 155/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 748fb077..4c07de57 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -1,4 +1,10 @@ -# Getting started +--- +layout: page +title: "Getting started" +lang: en +permalink: "/getting-started/" +trans_url: "/pour-commencer/" +--- The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. From 4baf55219fc8222aab2458e6e93541ef00c101f0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:04:06 -0400 Subject: [PATCH 156/440] Update home.md --- docs/_pages/en/home.md | 158 +++-------------------------------------- 1 file changed, 9 insertions(+), 149 deletions(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index d3bb8c67..cb93885f 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,151 +1,11 @@ -theme: jekyll-theme-minimal - -# GC Forms API Documentation -(Version 1 - Pilot/trial - Limited to prototyping partners only) - -## Welcome - -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This lite version of documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. - -Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. - -## Overview - -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. - -This first version of the documentation includes what you need to know about: -- Getting started -- Authentication -- Making requests -- Monitoring -- Getting support - -## Getting started - -### What you will need -- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) -- A form set to deliver responses via “Download” in Settings -- A few “mock” responses submitted to the form -- A target system where you plan on receiving form submission data -- An API key (generated by you in Settings > API Access) -- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API - -^ No infrastructure development capabilities available? -^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. - -### Getting an API key - -**To create an API key for this initial integration testing:** -1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). -2. Create a draft form. -3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. -4. Click “Generate Key”. -5. Download JSON file that includes the private API key. - -^ **IMPORTANT!** -^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. - -## Authentication - -### Base URL - -**Now: _Staging_** currently available for prototyping purposes (temporarily) -```https://api.forms-staging.cdssandbox.xyz/``` - -**Later: _Production_** coming soon, not yet avialable for real live forms (eventually) -```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` - -### How authentication works - -The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. - -Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. - -The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. - -#### Integration examples - -Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. - -Use these examples as a reference to generate access tokens in your preferred programming language: -- [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) -- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/blob/main/examples/nodejs/accessTokenGenerator.ts) -- [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) -- [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) - -#### Authorization header - -Use this header for each API request to verify it’s you: - -``` -curl \ - --request GET "$FORMS_URL" \ - --header "Authorization: Bearer $ACCESS_TOKEN" -``` - -## Making requests - -The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. - -**Query parameters** -The API requests for GC Forms submission data are possible using query parameters such as: - - -- **{formID}** - 25-character alphanumeric string found at the end of the URL for the form or at the start of the - file name of the API key. - For example: ```clzvj8fzb00226o90r2b7l1gt```. - - -- **{SubmissionName}** - 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms - app. - For example: ```e02-08-d732```. - - -- **{ConfirmationCode}** - 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the - GC Forms app. - For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. - -**Examples** - -We’ve developed some examples that you can reference or run the program for, that we hope will help make integration easier. Here are the programming languages currently available: - -- [.NET / C#](https://github.com/cds-snc/forms-api/tree/main/examples/dotnet) -- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/tree/main/examples/nodejs) -- [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) -- [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) - -### Retrieving **new** form submissions - -#### HTTP request - -This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: - -```GET /forms/{formID}/submission/new``` - -_Note: The status of these form submissions will not change to “Downloaded”._ - -#### Response status - -| Status code | Example message | Meaning / how to fix | -| ----------- | --------------- | -------------------- | -| 200 | [ - ``` { - "name": "05-09-09f4", - "createdAt": 1725553403512 - }, - { - "name": "05-09-9620", - "createdAt": 1725553404965 - }, - { - "name": "05-09-75dc", - "createdAt": 1725553404972 - } -] -``` - | List of new submission names successfully retrieved. | +--- +layout: page +title: "Home" +lang: en +permalink: "/home/" +trans_url: "/accueil/" +--- + +{% include home.md %} From 239aa0fc545d7b8636c1432dbd07ab49ea1db7d2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:04:57 -0400 Subject: [PATCH 157/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 37fc870c..4b5b3077 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -1,4 +1,10 @@ -## Making requests +--- +layout: page +title: "Making requests" +lang: en +permalink: "/making-requests/" +trans_url: "/faire-des-requetes/" +--- The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. @@ -32,9 +38,9 @@ We’ve developed some examples that you can reference or run the program for, t - [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) - [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) -### Retrieving **new** form submissions +## Retrieving **new** form submissions -#### HTTP request +### HTTP request This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: @@ -42,7 +48,7 @@ This URL path returns a list of submissions that includes the 100 oldest form su _Note: The status of these form submissions will not change to “Downloaded”._ -#### Response status +### Response status | Status code | Example message | Meaning / how to fix | | ----------- | --------------- | -------------------- | From d20177b2b92ba5d450c661d4e6b662db39bc20b7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:05:41 -0400 Subject: [PATCH 158/440] Create monitoring.md --- docs/_pages/en/monitoring.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/monitoring.md diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_pages/en/monitoring.md @@ -0,0 +1 @@ + From 8eb521c556dc5da2643d2df3f0407ac66f1b0c4a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:05:55 -0400 Subject: [PATCH 159/440] Create getting-support.md --- docs/_pages/en/getting-support.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/getting-support.md diff --git a/docs/_pages/en/getting-support.md b/docs/_pages/en/getting-support.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_pages/en/getting-support.md @@ -0,0 +1 @@ + From f9f96dad5a80c0b023c8f6ce56535577caa4e7a0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:06:42 -0400 Subject: [PATCH 160/440] Update getting-support.md --- docs/_pages/en/getting-support.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/_pages/en/getting-support.md b/docs/_pages/en/getting-support.md index 8b137891..ea1bdb17 100644 --- a/docs/_pages/en/getting-support.md +++ b/docs/_pages/en/getting-support.md @@ -1 +1,10 @@ +--- +layout: page +title: "Getting support" +lang: en +permalink: "/getting-support/" +trans_url: "/obtenir-du-soutien/" +--- +We’re open to all questions and welcome any feedback you might have to help us improve. You can email our team directly with any questions or needs for technical support. +Please include your name, email address, the form ID, response IDs (if relevant), and a description of the problem. From 2aa01a378ce763f22b397852b9058add324f2f60 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:08:45 -0400 Subject: [PATCH 161/440] Add files via upload --- docs/assets/DS_Store | Bin 0 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/DS_Store diff --git a/docs/assets/DS_Store b/docs/assets/DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3643f5acc9acbc3e756d941b9028959e0b95b8c7 GIT binary patch literal 6148 zcmeHK%WA_w3>>vdNa-cV9`_ge2TMr5pdZjCaR>#|1l-(x>u-1T2*j8`Pdzk}(T-QE z*=6ToSpZ~tYMy}wfH_?e-#Uy<*VRXM7m*23Y>#!*ZQIS^&~o}aQ|=URXt2f?2K)zx zKk$hyTAY}$LwDX@_nvY2NY?&xLC>8r*zwtM!vRBCX{kUekP4&%slcr(5Jh_ac<Vys z{ZoNdV5ES49|~Qu2KJ8j>EK{308xMA&G>G;1hHs<SOa@UMrh(xqEjVW3~@T+CGu)u z@91<$G#?TtOLQn=r*r>e>5%G}V=9me3>CQd=|b!O3;jy}KP2TW6-WjCl>#zZy{?wL zQq<Pb<+Roo`aAt>%(Zk5R*H#MiaF6z{B)65^quQ9uy-^%<3=aukAUiumJ0lZ0zZN* BCY}HQ literal 0 HcmV?d00001 From 45a66cb937aee79b34583cc27a85baa2a6e47f1f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:09:12 -0400 Subject: [PATCH 162/440] Add files via upload --- ...struction GSINs - Hierarchy of CPC, CCS.xlsx | Bin 0 -> 34224 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/Construction GSINs - Hierarchy of CPC, CCS.xlsx diff --git a/docs/assets/Construction GSINs - Hierarchy of CPC, CCS.xlsx b/docs/assets/Construction GSINs - Hierarchy of CPC, CCS.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f747ea6317031b871d626b6febe6fec3832d2137 GIT binary patch literal 34224 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%0D*pCT|L}19>VF%!dOEjp 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 M6bNX;?~kkh0TMx=(EtDd literal 0 HcmV?d00001 From 64818b0ef6de4654b34aa85e763abec8fbba747d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:13:41 -0400 Subject: [PATCH 163/440] Update main.css --- docs/assets/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index bc3d6f1f..25c1a606 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -54,7 +54,7 @@ strong { font-size: 1.625em; font-family: "Avenir Next", Arial, sans-serif; font-weight: normal; - color: vc; + color: #919395; margin: 0; line-height: 1.2941176470588236; display: inline-block; From cbc2157b57c2a2894d193861dcfc5ec843602625 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:13:59 -0400 Subject: [PATCH 164/440] Update normalize.css --- docs/assets/css/normalize.css | 729 ++++++++++++++++++++-------------- 1 file changed, 432 insertions(+), 297 deletions(-) diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css index c2de8df9..25c1a606 100644 --- a/docs/assets/css/normalize.css +++ b/docs/assets/css/normalize.css @@ -1,406 +1,541 @@ -/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ - -/* ========================================================================== - HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined in IE 8/9. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; +--- +--- + +/* +Main.css +================================== +Begin with generic 'mobile first' styles +*/ + +/* +Normalize the box model +================================== +*/ + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + +/* +global styles +================================== +*/ + +html, body { + height: 100%; +} + +/* +Typography +================================== +*/ + +body { + font-family: "Avenir Next", Arial, sans-serif; + font-weight: 400; + font-style: normal; + line-height: 1.466666667; } -/** - * Correct `inline-block` display not defined in IE 8/9. - */ +h1, +h3, +h4, +h5, +strong { + font-family: "Avenir Next Demi", "Avenir Next", Arial, sans-serif; + font-weight: 600; +} -audio, -canvas, -video { +.site-title { + font-size: 1.625em; + font-family: "Avenir Next", Arial, sans-serif; + font-weight: normal; + color: #919395; + margin: 0; + line-height: 1.2941176470588236; display: inline-block; + width: 70%; } -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; +h2 { + font-weight: 600; + font-style: normal; + font-size: 1.375em; + margin: 1.4em 0 0 0; } -/** - * Address `[hidden]` styling not present in IE 8/9. - * Hide the `template` element in IE, Safari, and Firefox < 22. - */ +h4 { + font-size: 1em; + text-transform: uppercase; +} -[hidden], -template { - display: none; +.page-title { + margin-top: .727272727em; /* 16/22 */ } -/* ========================================================================== - Base - ========================================================================== */ +.float-right { + display: inline-block; + width: 25%; + margin: 0; + text-align: right; +} -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ +.language-switcher { +} +/* +Lists +-------------------------------- +*/ -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ +.main-content ul { + padding-left: 1.1em; } -/** - * Remove default margin. - */ +.main-content li { + margin-bottom: 1em; +} -body { +li h3, +li h4 { margin: 0; } -/* ========================================================================== - Links - ========================================================================== */ +li p { + margin-top: 0; +} -/** - * Remove the gray background color from active links in IE 10. - */ +/* +Links +================================== +*/ a { - background: transparent; + -webkit-transition: .2s; + -moz-transition: .2s; + transition: .2s; } -/** - * Address `outline` inconsistency between Chrome and other browsers. - */ - -a:focus { - outline: thin dotted; +a, +a:link, +a:visited { + color: #0072ce; + border-bottom: 1px dotted #0072ce; + text-decoration: none; } -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, a:hover { - outline: 0; + border-bottom: 1px solid #7eb8dd; + color: #7eb8dd; + text-decoration: none; } -/* ========================================================================== - Typography - ========================================================================== */ - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari 5, and Chrome. - */ +a:active { + border-bottom: 1px solid #002d72; + color: #002d72; + text-decoration: none; +} -h1 { - font-size: 2em; - margin: 0.67em 0; +a:focus { + border-bottom: 1px solid #0072ce; + color: #0072ce; + outline: thin dotted; + text-decoration: none; } -/** - * Address styling not present in IE 8/9, Safari 5, and Chrome. - */ +a.title-link { + color: #75787B; + border-bottom: none; +} -abbr[title] { - border-bottom: 1px dotted; +a.title-link:hover, +a.title-link:active, +a.title-link:focus { + color: #7eb8dd; + border-bottom: none; } -/** - * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. - */ +a.skip-link { + color: #0072ce; + border-bottom: none; + padding: .25em; +} -b, -strong { - font-weight: bold; +a.skip-link:hover, +a.skip-link:active, +a.skip-link:focus { + background-color: #0072ce; + color: #fff; + border-bottom: none; } -/** - * Address styling not present in Safari 5 and Chrome. - */ -dfn { - font-style: italic; +/* +Navigation +================================== +*/ + +.sidebar-nav a { + display: block; + padding: 10px; + -webkit-transition: unset; + transition: unset; +} +.sidebar-nav a, +.sidebar-nav a:link, +.sidebar-nav a:visited { + border-bottom: none; + color: #75787b; +} +.sidebar-nav li:hover, +.sidebar-nav a:focus, +.sidebar-nav li:active, +.sidebar-nav .sidebar-nav-active { + color: #75787b; + border-left: 4px solid {{ site.brand_color }}; + background-color: transparent; + border-bottom: 1px solid #babbbd; +} +.sidebar-nav li:hover, +.sidebar-nav li:active, +.sidebar-nav .sidebar-nav-active { + padding-left: 0; +} +.sidebar-nav a:focus { + padding-left: 6px; +} +.sidebar-nav li:hover a:focus, +.sidebar-nav li:active a:focus { + border-left: none; + padding-left: 10px; +} +.sidebar-nav ul { + margin: 0; + padding: 0; + /*border-top: 1px solid @gray-50;*/ +} +.sidebar-nav li { + list-style: none; + border-bottom: 1px solid #babbbd; + font-size: 1.125em; + padding-left: 4px; +} +.sidebar-nav li:last-child { + border-bottom: none; } -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; +/* +Layout +================================== +*/ + +.logo { + display: block; } -/** - * Address styling not present in IE 8/9. - */ +.content { + padding-top: 2em; + padding-bottom: 2em; +} -mark { - background: #ff0; - color: #000; +/* offset the fixed position header for jump links */ +section:before { + display: block; + content: ""; + height: 60px; + margin: -60px 0 0; } -/** - * Correct font family set oddly in Safari 5 and Chrome. - */ +.wrap { + max-width: 1200px; + margin: 0 auto; + padding-left: 20px; + padding-right: 20px; +} -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; +header { + width: 100%; + border-bottom: 4px solid {{ site.brand_color }}; + background-color: #fff; + padding: 2em 0; } -/** - * Improve readability of pre-formatted text in all browsers. - */ -pre { - white-space: pre-wrap; +/* +Footer +================================== +*/ + +/* for sticky footer */ +.container { + display: table; + height: 100%; + width: 100%; } -/** - * Set consistent quote types. - */ +footer { + display: table-row; /* for sticky footer */ + height: 1px; /* for sticky footer */ + border-top: 2px solid #babbbd; + background: #f1f2f2; + width: 100%; + font-size: 0.875em; +} -q { - quotes: "\201C" "\201D" "\2018" "\2019"; +footer .wrap { + padding-top: 2em; + padding-bottom: 2em; } -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; -} +/* +Helpers +================================== +*/ -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ +/* Hide from both screenreaders and browsers: h5bp.com/u */ +.hidden { + display: none !important; + visibility: hidden; +} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; +/* Hide only visually, but have it available for screenreaders: h5bp.com/v */ +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } -sup { - top: -0.5em; +/* Extends the .visuallyhidden class to allow the element to be focusable + * when navigated to via the keyboard: h5bp.com/p */ +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } -sub { - bottom: -0.25em; +/* Hide visually and from screenreaders, but maintain layout */ +.invisible { + visibility: hidden; } -/* ========================================================================== - Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9. - */ +/* +Style +================================== +*/ -img { - border: 0; +.intro { + color: #75787B; } -/** - * Correct overflow displayed oddly in IE 9. - */ - -svg:not(:root) { - overflow: hidden; +li h4 { + margin: 0; } -/* ========================================================================== - Figures - ========================================================================== */ +.license { + font-family: "Avenir Next Demi", Arial, sans-serif; + font-weight: normal; + font-style: normal; +} -/** - * Address margin not present in IE 8/9 and Safari 5. - */ +pre { + max-width: 100%; + font-size: 0.875em; + overflow-y: scroll; + background-color: #f1f2f2; + padding: 10px; +} -figure { - margin: 0; +td, th { + border: 1px solid grey } +/* +Post list +---------------------------------- +*/ -/* ========================================================================== - Forms - ========================================================================== */ +ul.posts { + padding: 0; +} -/** - * Define consistent border, margin, and padding. - */ +.posts li { + list-style: none; +} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; +.post-date { + color: #75787B; } -/** - * 1. Correct `color` not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ +/* +Repo list +---------------------------------- +*/ -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ +ul.repo-list { + margin: .5em 0 1em 0; + padding: 0; } -/** - * 1. Correct font family not being inherited in all browsers. - * 2. Correct font size not being inherited in all browsers. - * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. - */ +.repo-list li { + list-style: none; +} -button, -input, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 2 */ - margin: 0; /* 3 */ +.repo-list p { + margin: 0; + font-size: 0.875em; } -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ +.repo-list h4 { + text-transform: none; +} -button, -input { - line-height: normal; +/* +Helper Classes +================================== +*/ + +/* +Clearfix list +---------------------------------- +*/ + +.group:before, +.group:after { + content: " "; + display: table; } -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. - * Correct `select` style inheritance in Firefox 4+ and Opera. - */ +.group:after { + clear: both; +} -button, -select { - text-transform: none; +.group { + *zoom: 1; } -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ +/* +Desktop Styles +================================== +*/ -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} +@media screen and (min-width: 45em) and (min-height: 32.5em) { -/** - * Re-set default cursor for disabled elements. - */ + /* + Typography + ============================== + */ -button[disabled], -html input[disabled] { - cursor: default; -} + /* + Layout + ============================== + */ -/** - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ + .logo { + max-width: 30%; + padding-right: 20px; + float: right; + } -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} + aside { + width: 30%; + float: left; + } -/** - * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). - */ + .main-content { + width: 67%; + float: right; + margin-bottom: 120px; + } -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} + /* + Navigation + ============================== + */ -/** - * Remove inner padding and search cancel button in Safari 5 and Chrome - * on OS X. - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} + /* + Style + ============================== + */ -/** - * Remove inner padding and border in Firefox 4+. - */ + /* + Repo list + ------------------------------ + */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} + .repo-list li { + list-style: none; + display: block; + float: left; + height: 4.0625em; + max-height: 4.0625em; + background-color: #E7E7E6; + border-left: 1px solid #BABBBD; + width: 30%; + } + + .repo-list a:link, + .repo-list a:visited { + display: block; + max-height: 4.0625em; + background-color: #E7E7E6; + border-bottom: none; + padding: .625em 1em 1em 1em; + } + + .repo-list a:hover { + color: #4D5F87; + background-color: #CDE3F1; + } -/** - * 1. Remove default vertical scrollbar in IE 8/9. - * 2. Improve readability and alignment in all browsers. - */ + .repo-list li:first-child { + text-align: center; + border-left: none; + line-height: 60px; + padding: .625em 1em; + width: 10%; + } -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ } -/* ========================================================================== - Tables - ========================================================================== */ +@media screen and (max-width: 54.375em) and (min-height: 32.5em) { + + /* keep the repo list containers the same height, but account for the need for more height */ + + .repo-list li { + height: 6em; + max-height: 6em; + } -/** - * Remove most spacing between table cells. - */ + .repo-list a:link, + .repo-list a:visited { + max-height: 6em; + } +} + +/* +Mobile Styles +================================== +*/ + +@media screen and (max-width: 40.5em) { + + .main-content { + margin-top: 1.5em; + } -table { - border-collapse: collapse; - border-spacing: 0; } From 74ac3707e315759e5ba136b33370945300c561f7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:14:21 -0400 Subject: [PATCH 165/440] Update syntax.css From 7b42bc23ab82048b8e411753b5b6c2a2eabfa748 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:14:36 -0400 Subject: [PATCH 166/440] Delete docs/assets/css/custom.css --- docs/assets/css/custom.css | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 docs/assets/css/custom.css diff --git a/docs/assets/css/custom.css b/docs/assets/css/custom.css deleted file mode 100644 index 30abf8b1..00000000 --- a/docs/assets/css/custom.css +++ /dev/null @@ -1,12 +0,0 @@ -.main-content p { - margin-top: 1.8em; - margin-bottom: 0.2em; -} - -.main-content ul { - margin-top: 0.3em; -} - -.main-content li { - margin-bottom: 0; -} From 20615475a55072864df7a219e6e87c56fe89642d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:15:03 -0400 Subject: [PATCH 167/440] Delete docs/assets/css/style.scss --- docs/assets/css/style.scss | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 docs/assets/css/style.scss diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss deleted file mode 100644 index 5742f930..00000000 --- a/docs/assets/css/style.scss +++ /dev/null @@ -1,4 +0,0 @@ ---- ---- - -@import "{{ site.theme }}"; From e89dfc763677d1f828b3e3951cddc3f659fe3697 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:15:59 -0400 Subject: [PATCH 168/440] Add files via upload --- docs/DS_Store | Bin 0 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/DS_Store diff --git a/docs/DS_Store b/docs/DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3643f5acc9acbc3e756d941b9028959e0b95b8c7 GIT binary patch literal 6148 zcmeHK%WA_w3>>vdNa-cV9`_ge2TMr5pdZjCaR>#|1l-(x>u-1T2*j8`Pdzk}(T-QE z*=6ToSpZ~tYMy}wfH_?e-#Uy<*VRXM7m*23Y>#!*ZQIS^&~o}aQ|=URXt2f?2K)zx zKk$hyTAY}$LwDX@_nvY2NY?&xLC>8r*zwtM!vRBCX{kUekP4&%slcr(5Jh_ac<Vys z{ZoNdV5ES49|~Qu2KJ8j>EK{308xMA&G>G;1hHs<SOa@UMrh(xqEjVW3~@T+CGu)u z@91<$G#?TtOLQn=r*r>e>5%G}V=9me3>CQd=|b!O3;jy}KP2TW6-WjCl>#zZy{?wL zQq<Pb<+Roo`aAt>%(Zk5R*H#MiaF6z{B)65^quQ9uy-^%<3=aukAUiumJ0lZ0zZN* BCY}HQ literal 0 HcmV?d00001 From 74ed86875b4b24787215b2e1b32bb33fdbb58825 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:18:09 -0400 Subject: [PATCH 169/440] Update _config.yml --- docs/_config.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 05c792bb..967bad49 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -32,14 +32,19 @@ author2: name: Canadian Digital Service url: https://digital.canada.ca +# Point the logo URL at a file in your repo or hosted elsewhere by your organization +logourl: +logoalt: + # Repo list # List repos that you would like to appear on the homepage here repos: -- name: forms-api - url: https://github.com/cds-snc/forms-api +- name: + description: + url: # Style Variables -brand_color: "#26374A" +brand_color: "#4b4085ff" # Offline caching offline_cache: false From 5ea3421d2663ca5ac853e87d03bc36c5ae138681 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:19:04 -0400 Subject: [PATCH 170/440] Update index.html --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index 1c88332c..f5ecf87a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,6 +3,6 @@ lang: en trans_url: /accueil --- -{% include navigation.html %} + {% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From 65582cc0166cc651018ae69843b05aaf6ef3cd49 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:22:44 -0400 Subject: [PATCH 171/440] Delete docs/getting-started.html --- docs/getting-started.html | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 docs/getting-started.html diff --git a/docs/getting-started.html b/docs/getting-started.html deleted file mode 100644 index 81a644fc..00000000 --- a/docs/getting-started.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: default -lang: en -trans_url: /pour-commencer ---- -{% include navigation.html %} -{% capture index %}{% include getting-started.md %}{% endcapture %} -{{ index | markdownify }} From 493ef06e5640f209541082ecfe83ba979b6d62e3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:45:56 -0400 Subject: [PATCH 172/440] Update default.html --- docs/_layouts/default.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index c1c0196e..0e12c593 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -15,6 +15,7 @@ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/normalize.css"> <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css"> <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/syntax.css"> + <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/custom.css"> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script src="{{ site.baseurl }}/assets/js/respond.min.js"></script> @@ -56,7 +57,7 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site <footer role="contentinfo"> <div class="wrap"> <p>{{site.data.translations[page.lang].built-by}} <a href="{{ site.data.translations[page.lang].cds-snc-url }}">{{ site.data.translations[page.lang].cds-snc}}</a>.</p> - <p><a href="https://github.com/cds-snc/pspc-documentation">{{site.data.translations[page.lang].contribute}}.</a></p> + <p><a href="https://github.com/cds-snc/forms-api">{{site.data.translations[page.lang].contribute}}.</a></p> <p>{{site.data.translations[page.lang].hosting}} <a href="http://pages.github.com/">GitHub Pages</a>.</p> </div><!--/.wrap --> </footer> From 94bfb0134b61c3deca387a0165e65e05dd25976e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:47:06 -0400 Subject: [PATCH 173/440] Create custom.css --- docs/assets/css/custom.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/assets/css/custom.css diff --git a/docs/assets/css/custom.css b/docs/assets/css/custom.css new file mode 100644 index 00000000..30abf8b1 --- /dev/null +++ b/docs/assets/css/custom.css @@ -0,0 +1,12 @@ +.main-content p { + margin-top: 1.8em; + margin-bottom: 0.2em; +} + +.main-content ul { + margin-top: 0.3em; +} + +.main-content li { + margin-bottom: 0; +} From e70382e02ecd5fcefc528ccace2f47830987d513 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:49:33 -0400 Subject: [PATCH 174/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 967bad49..b93f2a98 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -22,7 +22,7 @@ subtitle: This documentation is for developers who want to use the GC Forms API # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api' +baseurl: '/forms-api/docs/' # Author/Organization info to be displayed in the templates author: From e1874f58dd8a3d96e53cccd3d90f3690851b2192 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:50:47 -0400 Subject: [PATCH 175/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index b93f2a98..c4338cd6 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -22,7 +22,7 @@ subtitle: This documentation is for developers who want to use the GC Forms API # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api/docs/' +baseurl: '/forms-api/' # Author/Organization info to be displayed in the templates author: From 42f9a34bdd446b74b661ba93f6dae48dce8ccbc3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:51:39 -0400 Subject: [PATCH 176/440] Update accueil.md --- docs/_includes/accueil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index 391a4f74..13c2191f 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1 +1 @@ -# Accueil +# Bienvenue From 7722dfa23cffedf0b21d4a2d994c6fe52df178f5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:56:30 -0400 Subject: [PATCH 177/440] Update _config.yml --- docs/_config.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/_config.yml b/docs/_config.yml index c4338cd6..3409e4d8 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,7 +1,16 @@ # Base configuration exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] markdown: kramdown +lsi: false +safe: true +source: [your repo's top level directory] +incremental: false highlighter: rouge +gist: + noscript: false +kramdown: + math_engine: mathjax + syntax_highlighter: rouge collections: pages: From 6f9997d210f88df3231c46525a5edce902d344ae Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:58:21 -0400 Subject: [PATCH 178/440] Update _config.yml --- docs/_config.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 3409e4d8..e8b378df 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -16,11 +16,22 @@ collections: pages: output: true permalink: /:path/ - + # Theme remote_theme: pages-themes/minimal@v0.2.0 + +#Plugins plugins: - jekyll-remote-theme # add this line to the plugins list if you already have one +- jekyll-coffeescript +- jekyll-default-layout +- jekyll-gist +- jekyll-github-metadata +- jekyll-optional-front-matter +- jekyll-paginate +- jekyll-readme-index +- jekyll-titles-from-headings +- jekyll-relative-links # Title name: GC Forms API From fc09edb69399ceaca2d88ad3e8c673d5dc85bc06 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:00:23 -0400 Subject: [PATCH 179/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 8ab18868..c6a04367 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -3,7 +3,7 @@ en: cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" - built-by: "This documentation was built for developers who are using" + built-by: "This technical documentation is for developers who are using" contribute: "Contribute to this project" repo: "Repository" language: "Français" @@ -14,7 +14,7 @@ fr: cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" - built-by: "Cette documentation a été conçue pour les développeurs qui utilisent" + built-by: "Cette documentation technique est conçue pour les développeurs qui utilisent" contribute: "Contribuer à cette documentation" repo: "Référentiel" language: "English" From ac5405d6404bccbab05d3ad84e2d13bb5915c92a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:01:35 -0400 Subject: [PATCH 180/440] Create post.html --- docs/_layouts/post.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_layouts/post.html diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html new file mode 100644 index 00000000..f2e278b0 --- /dev/null +++ b/docs/_layouts/post.html @@ -0,0 +1,11 @@ +--- +layout: default +--- +<article> + <h2 class="page-title">{{ page.title }}</h2> + <p class="meta">{{ page.date | date_to_string }}</p> + + <div class="post"> + {{ content }} + </div> +</article> From f7ac8745d56aa07e906ab8fcb54e52bc9430aa1a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:04:16 -0400 Subject: [PATCH 181/440] Update sw.js --- docs/sw.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/sw.js b/docs/sw.js index b44ac23c..20df38a0 100644 --- a/docs/sw.js +++ b/docs/sw.js @@ -6,12 +6,12 @@ importScripts( '{{ site.baseurl }}/cache-polyfill.js' ); var filesToCache = [ // root - '{{ site.baseurl }}/', - '{{ site.baseurl }}/index.html', + '{{ site.baseurl }}/docs/', + '{{ site.baseurl }}/docs/index.html', // css - '{{ site.baseurl }}/assets/css/main.css', - '{{ site.baseurl }}/assets/css/normalize.css', - '{{ site.baseurl }}/assets/css/syntax.css', + '{{ site.baseurl }}/docs/assets/css/main.css', + '{{ site.baseurl }}/docs/assets/css/normalize.css', + '{{ site.baseurl }}/docs/assets/css/syntax.css', // images '{{ site.baseurl }}/assets/img/octocat.png', // pages From 51eb02459d563f488038f72dfa5f1267972fca6c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:04:46 -0400 Subject: [PATCH 182/440] Update sw.js --- docs/sw.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/sw.js b/docs/sw.js index 20df38a0..b44ac23c 100644 --- a/docs/sw.js +++ b/docs/sw.js @@ -6,12 +6,12 @@ importScripts( '{{ site.baseurl }}/cache-polyfill.js' ); var filesToCache = [ // root - '{{ site.baseurl }}/docs/', - '{{ site.baseurl }}/docs/index.html', + '{{ site.baseurl }}/', + '{{ site.baseurl }}/index.html', // css - '{{ site.baseurl }}/docs/assets/css/main.css', - '{{ site.baseurl }}/docs/assets/css/normalize.css', - '{{ site.baseurl }}/docs/assets/css/syntax.css', + '{{ site.baseurl }}/assets/css/main.css', + '{{ site.baseurl }}/assets/css/normalize.css', + '{{ site.baseurl }}/assets/css/syntax.css', // images '{{ site.baseurl }}/assets/img/octocat.png', // pages From 90ba456a9f6bdbc1bacbd29f8ec3a393bce3e382 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:05:18 -0400 Subject: [PATCH 183/440] Update index.html --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index f5ecf87a..1c88332c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,6 +3,6 @@ lang: en trans_url: /accueil --- - +{% include navigation.html %} {% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From e47c97b87e3cde33fd4e1b3f23453521b56cf78c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:06:16 -0400 Subject: [PATCH 184/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index e8b378df..34e23cfc 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -42,7 +42,7 @@ subtitle: This documentation is for developers who want to use the GC Forms API # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api/' +baseurl: '/forms-api/docs/' # Author/Organization info to be displayed in the templates author: From d48dd36f576e57686d99c7151c688e66f6ffd2a9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:08:10 -0400 Subject: [PATCH 185/440] Create navigation-fr.html --- docs/_includes/navigation-fr.html | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 docs/_includes/navigation-fr.html diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html new file mode 100644 index 00000000..3e54f7fc --- /dev/null +++ b/docs/_includes/navigation-fr.html @@ -0,0 +1,10 @@ +{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} +{% for cat in mydocs %} +<h3>{{ cat.name | capitalize }}</h3> + <ul> + {% assign items = cat.items | sort: 'title' %} + {% for item in items %} + <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li> + {% endfor %} + </ul> +{% endfor %} From 4aa64d3a4d9766f2a0bc98c4d5bc8edfe71856d3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:08:35 -0400 Subject: [PATCH 186/440] Create navigation.html --- docs/_includes/navigation.html | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 docs/_includes/navigation.html diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html new file mode 100644 index 00000000..6d32fb96 --- /dev/null +++ b/docs/_includes/navigation.html @@ -0,0 +1,10 @@ +{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} +{% for cat in mydocs %} +<h3>{{ cat.name | capitalize }}</h3> + <ul> + {% assign items = cat.items | sort: 'title' %} + {% for item in items %} + <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li> + {% endfor %} + </ul> +{% endfor %} From 9ccacb5bd4cc437b17f68682573becef08141749 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:18:57 -0400 Subject: [PATCH 187/440] Update _config.yml --- docs/_config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/_config.yml b/docs/_config.yml index 34e23cfc..58e7287e 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -24,14 +24,17 @@ remote_theme: pages-themes/minimal@v0.2.0 plugins: - jekyll-remote-theme # add this line to the plugins list if you already have one - jekyll-coffeescript +- jekyll-commonmark-ghpages - jekyll-default-layout - jekyll-gist - jekyll-github-metadata - jekyll-optional-front-matter - jekyll-paginate - jekyll-readme-index +- jekyll-relative-links - jekyll-titles-from-headings - jekyll-relative-links +- jekyll-seo-tag # Title name: GC Forms API From eedffbe35156a69d503a57b25d98a9dcd95223f3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:29:18 -0400 Subject: [PATCH 188/440] Update _config.yml --- docs/_config.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/_config.yml b/docs/_config.yml index 58e7287e..6d2fa275 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -12,6 +12,10 @@ kramdown: math_engine: mathjax syntax_highlighter: rouge +GitHub Pages: +- github-pages v232 +- jekyll v3.10.0 + collections: pages: output: true @@ -35,6 +39,7 @@ plugins: - jekyll-titles-from-headings - jekyll-relative-links - jekyll-seo-tag +- kramdown-parser-gfm # Title name: GC Forms API From eaac7183dcfcb4fab389fd9070aa45823182b241 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:31:50 -0400 Subject: [PATCH 189/440] Delete docs/_includes/navigation.html --- docs/_includes/navigation.html | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 docs/_includes/navigation.html diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html deleted file mode 100644 index 6d32fb96..00000000 --- a/docs/_includes/navigation.html +++ /dev/null @@ -1,10 +0,0 @@ -{% assign mydocs = site.pages | where:"lang","en" | where:"layout","page" | group_by: 'category' | sort: 'name' %} -{% for cat in mydocs %} -<h3>{{ cat.name | capitalize }}</h3> - <ul> - {% assign items = cat.items | sort: 'title' %} - {% for item in items %} - <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li> - {% endfor %} - </ul> -{% endfor %} From 1b74b04eab1dc06988f97bdcf0d6af3bf047d7fa Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:31:59 -0400 Subject: [PATCH 190/440] Delete docs/_includes/navigation-fr.html --- docs/_includes/navigation-fr.html | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 docs/_includes/navigation-fr.html diff --git a/docs/_includes/navigation-fr.html b/docs/_includes/navigation-fr.html deleted file mode 100644 index 3e54f7fc..00000000 --- a/docs/_includes/navigation-fr.html +++ /dev/null @@ -1,10 +0,0 @@ -{% assign mydocs = site.pages | where:"lang","fr" | where:"layout","page" | group_by: 'category' | sort: 'name' %} -{% for cat in mydocs %} -<h3>{{ cat.name | capitalize }}</h3> - <ul> - {% assign items = cat.items | sort: 'title' %} - {% for item in items %} - <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li> - {% endfor %} - </ul> -{% endfor %} From 1c8cffed802b806619a36f2e4b86e8a3b2b3ed63 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:35:55 -0400 Subject: [PATCH 191/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 4c07de57..eca6ac44 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -1,5 +1,5 @@ --- -layout: page +layout: default title: "Getting started" lang: en permalink: "/getting-started/" From fff85956b22f2f2e8c5bb62959b766bac8951586 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:36:13 -0400 Subject: [PATCH 192/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index eca6ac44..4c07de57 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -1,5 +1,5 @@ --- -layout: default +layout: page title: "Getting started" lang: en permalink: "/getting-started/" From 6657ac116fad7864722e703893db15e88ce4f03e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:37:27 -0400 Subject: [PATCH 193/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 4c07de57..7930f3fa 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -6,6 +6,8 @@ permalink: "/getting-started/" trans_url: "/pour-commencer/" --- +{% include getting-started.md %} + The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. ## What you will need From 4b43dc7b4472a89ce45b99a56afa597f4aa179ef Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:39:07 -0400 Subject: [PATCH 194/440] Update menu.yml --- docs/_data/menu.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index cb010077..13dd84ea 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,39 +1,39 @@ en: home: name: "Home" - url: "/home/" + url: "home/" getting-started: name: "Getting started" - url: "/getting-started/" + url: "getting-started/" authentication: name: "Authentication" - url: "/authentication/" + url: "authentication/" making-requests: name: "Making requests" - url: "/making-requests/" + url: "making-requests/" monitoring: name: "Monitoring" - url: "/monitoring/" + url: "monitoring/" contact: name: "Getting support" - url: "/getting-support/" + url: "getting-support/" fr: accueil: name: "Accueil" - url: "/accueil/" + url: "accueil/" getting-started: name: "Pour commencer" - url: "/pour-commencer/" + url: "pour-commencer/" authentication: name: "Authentification" - url: "/authentification/" + url: "authentification/" making-requests: name: "Faire des requêtes" - url: "/faire-des-requetes/" + url: "faire-des-requetes/" monitoring: name: "Surveiller" url: "/surveiller/" contact: name: "Obtenir du soutien" - url: "/obtenir-du-soutien/" + url: "obtenir-du-soutien/" From 912e1fcb07f149d9328c82db015eb2ad39ac8ad9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:40:06 -0400 Subject: [PATCH 195/440] Update home.md --- docs/_includes/home.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index b802293e..7728d7f8 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -1,3 +1,11 @@ +--- +layout: page +title: "Home" +lang: en +permalink: "home/" +trans_url: "accueil/" +--- + # Welcome Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. From 6a6f39fa064c652113b43aab367620385e06e54d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:40:42 -0400 Subject: [PATCH 196/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 6d2fa275..3e6541a7 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -50,7 +50,7 @@ subtitle: This documentation is for developers who want to use the GC Forms API # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api/docs/' +baseurl: '/forms-api/' # Author/Organization info to be displayed in the templates author: From b90eed0a04864202c34f452547d8f44d183f2b68 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:41:32 -0400 Subject: [PATCH 197/440] Update _config.yml --- docs/_config.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 3e6541a7..a913c5ef 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -12,10 +12,6 @@ kramdown: math_engine: mathjax syntax_highlighter: rouge -GitHub Pages: -- github-pages v232 -- jekyll v3.10.0 - collections: pages: output: true From 11abb01d1ef994077db3501a54af527c9f250e55 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:42:38 -0400 Subject: [PATCH 198/440] Update index.html --- docs/index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index 1c88332c..7bfc0bcd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,6 +3,5 @@ lang: en trans_url: /accueil --- -{% include navigation.html %} {% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From cc96caae06a4799994e5cce130e54522279c65c9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:42:51 -0400 Subject: [PATCH 199/440] Update accueil.html --- docs/accueil.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/accueil.html b/docs/accueil.html index 2f72d53a..e7448deb 100644 --- a/docs/accueil.html +++ b/docs/accueil.html @@ -3,6 +3,5 @@ lang: fr trans_url: /home --- -{% include navigation.html %} {% capture index %}{% include accueil.md %}{% endcapture %} {{ index | markdownify }} From c006b8259003c68db0b53d47039fcd153935be68 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:44:00 -0400 Subject: [PATCH 200/440] Update menu.yml --- docs/_data/menu.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index 13dd84ea..cb010077 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -1,39 +1,39 @@ en: home: name: "Home" - url: "home/" + url: "/home/" getting-started: name: "Getting started" - url: "getting-started/" + url: "/getting-started/" authentication: name: "Authentication" - url: "authentication/" + url: "/authentication/" making-requests: name: "Making requests" - url: "making-requests/" + url: "/making-requests/" monitoring: name: "Monitoring" - url: "monitoring/" + url: "/monitoring/" contact: name: "Getting support" - url: "getting-support/" + url: "/getting-support/" fr: accueil: name: "Accueil" - url: "accueil/" + url: "/accueil/" getting-started: name: "Pour commencer" - url: "pour-commencer/" + url: "/pour-commencer/" authentication: name: "Authentification" - url: "authentification/" + url: "/authentification/" making-requests: name: "Faire des requêtes" - url: "faire-des-requetes/" + url: "/faire-des-requetes/" monitoring: name: "Surveiller" url: "/surveiller/" contact: name: "Obtenir du soutien" - url: "obtenir-du-soutien/" + url: "/obtenir-du-soutien/" From cf025778277b6d93894db645eb6f7aa194d4226e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:44:23 -0400 Subject: [PATCH 201/440] Update home.md --- docs/_includes/home.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index 7728d7f8..05e69e0c 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -2,8 +2,8 @@ layout: page title: "Home" lang: en -permalink: "home/" -trans_url: "accueil/" +permalink: "/home/" +trans_url: "/accueil/" --- # Welcome From ccc2cb6fa31946d583b327e5ff745d501497c082 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:45:29 -0400 Subject: [PATCH 202/440] Update home.md --- docs/_pages/en/home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index cb93885f..675cf70b 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,5 +1,5 @@ --- -layout: page +layout: default title: "Home" lang: en permalink: "/home/" From 26c454b7df4ae151d5d068fa8edfb6c2d4fba4da Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:45:55 -0400 Subject: [PATCH 203/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 4b5b3077..d1809826 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -1,5 +1,5 @@ --- -layout: page +layout: default title: "Making requests" lang: en permalink: "/making-requests/" From cda743cda9d125fd50b80ffbcfcfe85a4fcfc1e7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:46:35 -0400 Subject: [PATCH 204/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 8b137891..c9c72fba 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -1 +1,9 @@ +--- +layout: default +title: "Monitoring" +lang: en +permalink: "/monitoring/" +trans_url: "/monitoring/" +--- +Monitoring From 1ef63650e73d2b48425cf1596780576389a5a5ca Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:46:51 -0400 Subject: [PATCH 205/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 7930f3fa..4c07de57 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -6,8 +6,6 @@ permalink: "/getting-started/" trans_url: "/pour-commencer/" --- -{% include getting-started.md %} - The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. ## What you will need From 1aeeeeaed1e4aea0974f7e4cc4086627b068cc78 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:47:28 -0400 Subject: [PATCH 206/440] Create authentification.md --- docs/_pages/fr/authentification.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/fr/authentification.md diff --git a/docs/_pages/fr/authentification.md b/docs/_pages/fr/authentification.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_pages/fr/authentification.md @@ -0,0 +1 @@ + From 456b9d2c941fb45528277c052de4125d20b2fb49 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:48:10 -0400 Subject: [PATCH 207/440] Update authentification.md --- docs/_pages/fr/authentification.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/_pages/fr/authentification.md b/docs/_pages/fr/authentification.md index 8b137891..36fc15f8 100644 --- a/docs/_pages/fr/authentification.md +++ b/docs/_pages/fr/authentification.md @@ -1 +1,8 @@ +--- +layout: page +title: "Authentification" +lang: fr +permalink: "/authentification/" +trans_url: "/authentication/" +--- From 50f2276fd26caccc67bf4e5fe735bfed87df4c39 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:48:35 -0400 Subject: [PATCH 208/440] Update accueil.md --- docs/_pages/fr/accueil.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/_pages/fr/accueil.md b/docs/_pages/fr/accueil.md index a2f176a9..c44e0b33 100644 --- a/docs/_pages/fr/accueil.md +++ b/docs/_pages/fr/accueil.md @@ -1 +1,9 @@ -Accueil +--- +layout: page +title: "Accueil" +lang: fr +permalink: "/accueil/" +trans_url: "/home/" +--- + +# Accueil From a142681b49a939e9f8535eaf65d4ce6d9d4ba05e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:51:07 -0400 Subject: [PATCH 209/440] Create pour-commencer.md --- docs/_pages/fr/pour-commencer.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/_pages/fr/pour-commencer.md diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md new file mode 100644 index 00000000..229aea90 --- /dev/null +++ b/docs/_pages/fr/pour-commencer.md @@ -0,0 +1,8 @@ +--- +layout: page +title: "Pour commencer" +lang: fr +permalink: "/pour-commencer/" +trans_url: "/getting-started/" +--- + From 8ff1690b0e23ba05e6aeba39faf49c7dd8f9c453 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:51:47 -0400 Subject: [PATCH 210/440] Create surveiller.md --- docs/_pages/fr/surveiller.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docs/_pages/fr/surveiller.md diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md new file mode 100644 index 00000000..1bb5eec3 --- /dev/null +++ b/docs/_pages/fr/surveiller.md @@ -0,0 +1,9 @@ +--- +layout: page +title: "Surveiller" +lang: fr +permalink: "/surveiller/" +trans_url: "/monitoring/" +--- + +Surveiller From 8198e16a09419b4dc06b9fa4796c2dcc2bd36cc9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:52:22 -0400 Subject: [PATCH 211/440] Create obtenir-du-soutien.md --- docs/_pages/fr/obtenir-du-soutien.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docs/_pages/fr/obtenir-du-soutien.md diff --git a/docs/_pages/fr/obtenir-du-soutien.md b/docs/_pages/fr/obtenir-du-soutien.md new file mode 100644 index 00000000..a7642aac --- /dev/null +++ b/docs/_pages/fr/obtenir-du-soutien.md @@ -0,0 +1,9 @@ +--- +layout: page +title: "Obtenir du soutien" +lang: fr +permalink: "/obtenir-du-soutien/" +trans_url: "/getting-support/" +--- + +Soutien From 00a407b39d27d29a1ec5fad12d6016e2c2015712 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:52:54 -0400 Subject: [PATCH 212/440] Create faire-des-requetes.md --- docs/_pages/fr/faire-des-requetes.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/_pages/fr/faire-des-requetes.md diff --git a/docs/_pages/fr/faire-des-requetes.md b/docs/_pages/fr/faire-des-requetes.md new file mode 100644 index 00000000..ecfab3bc --- /dev/null +++ b/docs/_pages/fr/faire-des-requetes.md @@ -0,0 +1,8 @@ +--- +layout: page +title: "Faire des requêtes" +lang: fr +permalink: "/faire-des-requetes/" +trans_url: "/making-requests/" +--- + From e1f2e279cff1a53f7038bfa043a5ef9bc580150d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:55:05 -0400 Subject: [PATCH 213/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index c6a04367..6f4d4807 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -8,7 +8,7 @@ en: repo: "Repository" language: "Français" homepage-slug: "/home/" - site-name: "GC Forms API" + site-name: "GC Forms - Data retrieval API" fr: homepage-tag-line: "" cds-snc: "Formulaires GC" @@ -19,4 +19,4 @@ fr: repo: "Référentiel" language: "English" homepage-slug: "/accueil/" - site-name: "API Formulaires GC" + site-name: "API pour récupération de données de Formulaires GC" From c606ca6b8e3bee11be656034434c3daf52b2ea4f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:55:43 -0400 Subject: [PATCH 214/440] Update authentication.md --- docs/_pages/en/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 9e2184b6..1331ace8 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -22,7 +22,7 @@ Authentication is done through an opaque token, with basic authorization handled The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. -### Integration examples +## Integration examples Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. @@ -32,7 +32,7 @@ Use these examples as a reference to generate access tokens in your preferred pr - [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) - [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) -### Authorization header +## Authorization header Use this header for each API request to verify it’s you: From e76cc275df409b16fa1b0e51d487da7fede02372 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:56:03 -0400 Subject: [PATCH 215/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 4c07de57..75ebead2 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -6,6 +6,8 @@ permalink: "/getting-started/" trans_url: "/pour-commencer/" --- +## Overview + The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. ## What you will need From 0dbeded39b25c90d313a278ced17229ae49871d9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:56:28 -0400 Subject: [PATCH 216/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index c9c72fba..4d144cf3 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -1,5 +1,5 @@ --- -layout: default +layout: page title: "Monitoring" lang: en permalink: "/monitoring/" From 17a5f5f7b3911a1b067137e473a368668ef4ae9d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:56:36 -0400 Subject: [PATCH 217/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index d1809826..4b5b3077 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -1,5 +1,5 @@ --- -layout: default +layout: page title: "Making requests" lang: en permalink: "/making-requests/" From fca2487ed2808632bfe6f56523bcc102849afc2e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:56:47 -0400 Subject: [PATCH 218/440] Update home.md --- docs/_pages/en/home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index 675cf70b..cb93885f 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,5 +1,5 @@ --- -layout: default +layout: page title: "Home" lang: en permalink: "/home/" From 51f32d1a2dde7ef63c57224307c8115f3d576e51 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:58:47 -0400 Subject: [PATCH 219/440] Update translations.yml --- docs/_data/translations.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 6f4d4807..20e2d6df 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,6 @@ en: - homepage-tag-line: "" + homepage-tag-line: "Version 1: Limited Pilot" +" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" From 68572c468297ac214b6ff67eac1f3778f5b0a01e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:59:09 -0400 Subject: [PATCH 220/440] Update index.html --- docs/index.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/index.html b/docs/index.html index 7bfc0bcd..199d4291 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,7 +1,2 @@ ---- -layout: default -lang: en -trans_url: /accueil ---- {% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From eea86d0e96793cee89a0437fde5038f43fd910a0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:00:09 -0400 Subject: [PATCH 221/440] Update index.html --- docs/index.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/index.html b/docs/index.html index 199d4291..7bfc0bcd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,2 +1,7 @@ +--- +layout: default +lang: en +trans_url: /accueil +--- {% capture index %}{% include index.md %}{% endcapture %} {{ index | markdownify }} From e979adf66c5d837f06b554a6045482873beab4a1 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:00:23 -0400 Subject: [PATCH 222/440] Update home.md --- docs/_pages/en/home.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index cb93885f..0307327f 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,11 +1,3 @@ ---- -layout: page -title: "Home" -lang: en -permalink: "/home/" -trans_url: "/accueil/" ---- - {% include home.md %} From b5138a6c49abadea99945b5dfb7182f79adb405a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:01:32 -0400 Subject: [PATCH 223/440] Update accueil.md --- docs/_pages/fr/accueil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/accueil.md b/docs/_pages/fr/accueil.md index c44e0b33..fe606e88 100644 --- a/docs/_pages/fr/accueil.md +++ b/docs/_pages/fr/accueil.md @@ -6,4 +6,4 @@ permalink: "/accueil/" trans_url: "/home/" --- -# Accueil +### Bienvenue From f03aa5638b3dbcad755a8c32b84a520a129afda2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:02:08 -0400 Subject: [PATCH 224/440] Update home.md --- docs/_pages/en/home.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index 0307327f..cb93885f 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,3 +1,11 @@ +--- +layout: page +title: "Home" +lang: en +permalink: "/home/" +trans_url: "/accueil/" +--- + {% include home.md %} From 4b4c41899d7530d4c3f43813cfbe0d8613ea1a6d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:04:51 -0400 Subject: [PATCH 225/440] Update home.md --- docs/_pages/en/home.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index cb93885f..d4dbe89b 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -6,6 +6,8 @@ permalink: "/home/" trans_url: "/accueil/" --- -{% include home.md %} +### Welcome - +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + +Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From f54070ab822e89c46ac75dcbd7af91ff5d5bb76d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:05:08 -0400 Subject: [PATCH 226/440] Delete docs/_includes/home.md --- docs/_includes/home.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 docs/_includes/home.md diff --git a/docs/_includes/home.md b/docs/_includes/home.md deleted file mode 100644 index 05e69e0c..00000000 --- a/docs/_includes/home.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: page -title: "Home" -lang: en -permalink: "/home/" -trans_url: "/accueil/" ---- - -# Welcome - -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. - -Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From 437ec82a6687ea228c20c4b7c6af01cbf68f765c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:05:16 -0400 Subject: [PATCH 227/440] Delete docs/_includes/accueil.md --- docs/_includes/accueil.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_includes/accueil.md diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md deleted file mode 100644 index 13c2191f..00000000 --- a/docs/_includes/accueil.md +++ /dev/null @@ -1 +0,0 @@ -# Bienvenue From 6a9df834c0c0cf6a85d362bb444e72b9561904b2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:05:51 -0400 Subject: [PATCH 228/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 75ebead2..f41c5e2b 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -6,11 +6,11 @@ permalink: "/getting-started/" trans_url: "/pour-commencer/" --- -## Overview +### Overview The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. -## What you will need +### What you will need - A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) - A form set to deliver responses via “Download” in Settings @@ -22,7 +22,7 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev ^ No infrastructure development capabilities available? ^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. -## Getting the API key +### Getting the API key **To create an API key for this initial integration testing:** 1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). From bd69b7a1a2545a5eb835ac4a403e33b70cbeb5f4 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:09:15 -0400 Subject: [PATCH 229/440] Update home.md --- docs/_pages/en/home.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index d4dbe89b..f67381b4 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,13 +1,11 @@ --- layout: page -title: "Home" +title: "Welcome" lang: en permalink: "/home/" trans_url: "/accueil/" --- -### Welcome - Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From 45092bcde8fd6a5a59cb3d133db37a89d127c21a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:09:31 -0400 Subject: [PATCH 230/440] Update accueil.md --- docs/_pages/fr/accueil.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/_pages/fr/accueil.md b/docs/_pages/fr/accueil.md index fe606e88..09667f2f 100644 --- a/docs/_pages/fr/accueil.md +++ b/docs/_pages/fr/accueil.md @@ -1,9 +1,7 @@ --- layout: page -title: "Accueil" +title: "Bienvenue" lang: fr permalink: "/accueil/" trans_url: "/home/" --- - -### Bienvenue From ebf8198c66c43d0d6dbb22c33912e79eb62e9d1a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:09:51 -0400 Subject: [PATCH 231/440] Update obtenir-du-soutien.md --- docs/_pages/fr/obtenir-du-soutien.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_pages/fr/obtenir-du-soutien.md b/docs/_pages/fr/obtenir-du-soutien.md index a7642aac..709b3e23 100644 --- a/docs/_pages/fr/obtenir-du-soutien.md +++ b/docs/_pages/fr/obtenir-du-soutien.md @@ -5,5 +5,3 @@ lang: fr permalink: "/obtenir-du-soutien/" trans_url: "/getting-support/" --- - -Soutien From f277a25e797efccd4879153486967f3fa5044c87 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:10:03 -0400 Subject: [PATCH 232/440] Update surveiller.md --- docs/_pages/fr/surveiller.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index 1bb5eec3..18a6b81b 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -5,5 +5,3 @@ lang: fr permalink: "/surveiller/" trans_url: "/monitoring/" --- - -Surveiller From 52337d27c41ccc2257b0cb6954e7a75396970acb Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:15:42 -0400 Subject: [PATCH 233/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 4d144cf3..54082890 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -6,4 +6,24 @@ permalink: "/monitoring/" trans_url: "/monitoring/" --- -Monitoring +### Common errors + +These are common errors that apply globally and are the same for every URL path. + +| Status code | Example message | Meaning or how to fix | +| :---------------- | :------ | :---- | +| 401 | Unauthorized | No access token was provided. | +| 401 | Access token has expired | Access token has expired | +| 403 | Forbidden | Could not validate access token OR "Form ID" in request is not allowed to be accessed with the provided access token. | +| 404 | Not found | Invalid request URL. | +| 500 | Internal server error | Internal error while serving request. | + + +### Refreshing API keys + +Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. + +### Requesting a rate limit increase + +We’ll soon be implementing API throttling and token bucket rate limits to manage high API traffic and maintain the system’s stability. This will help avoid overloading situations where too many requests are processed simultaneously. We anticipate the API limits will be tied to different use cases or types of usage and will try to determine appropriate limits for API requests per minute. + From 254e12784d41895431e7e1794037944e69dba4a0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:19:46 -0400 Subject: [PATCH 234/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index f41c5e2b..f336cf27 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -31,5 +31,4 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -^ **IMPORTANT!** -^ You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +> **IMPORTANT** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From a4f4c432a6d3e89f79325b4a6a0365eb42cbab25 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:20:00 -0400 Subject: [PATCH 235/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index f336cf27..e14df22a 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -2,8 +2,8 @@ layout: page title: "Getting started" lang: en -permalink: "/getting-started/" -trans_url: "/pour-commencer/" +permalink: "getting-started/" +trans_url: "pour-commencer/" --- ### Overview From b7e6261a2e9b10b6b83dfc975df8ce0400f8fe9a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:20:39 -0400 Subject: [PATCH 236/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index e14df22a..f336cf27 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -2,8 +2,8 @@ layout: page title: "Getting started" lang: en -permalink: "getting-started/" -trans_url: "pour-commencer/" +permalink: "/getting-started/" +trans_url: "/pour-commencer/" --- ### Overview From 67f716117f758a559093f6fb55cbbb2e0af5e2a7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:22:44 -0400 Subject: [PATCH 237/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index a913c5ef..c1c41b5c 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -46,7 +46,7 @@ subtitle: This documentation is for developers who want to use the GC Forms API # When working locally use jekyll serve --baseurl '' so that you can view everything at localhost:4000 # See http://jekyllrb.com/docs/github-pages/ for more info #baseurl: '' -baseurl: '/forms-api/' +baseurl: '/forms-api' # Author/Organization info to be displayed in the templates author: From d7c6031e45a4e3de20b07b5a77b6936df48ad512 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:25:30 -0400 Subject: [PATCH 238/440] Update translations.yml --- docs/_data/translations.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 20e2d6df..007c72e1 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -4,8 +4,9 @@ en: cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" - built-by: "This technical documentation is for developers who are using" - contribute: "Contribute to this project" + built-by: "subtitle: This documentation is for API developers retrieving form submissions from +" + contribute: "Explore the GC Forms API" repo: "Repository" language: "Français" homepage-slug: "/home/" @@ -15,8 +16,8 @@ fr: cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" - built-by: "Cette documentation technique est conçue pour les développeurs qui utilisent" - contribute: "Contribuer à cette documentation" + built-by: "Cette documentation s'adresse aux développeurs d'API qui récupèrent des soumissions de formulaire à partir de" + contribute: "Explorer l'API Formualaires GC" repo: "Référentiel" language: "English" homepage-slug: "/accueil/" From 15f01d608846cc0fe548e5ff394887af27490267 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:29:31 -0400 Subject: [PATCH 239/440] Create home.md --- docs/_includes/home.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_includes/home.md diff --git a/docs/_includes/home.md b/docs/_includes/home.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_includes/home.md @@ -0,0 +1 @@ + From 2590c2a2885bb11aace9d17c4a944343836611f6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:29:41 -0400 Subject: [PATCH 240/440] Create accueil.md --- docs/_includes/accueil.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_includes/accueil.md diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/_includes/accueil.md @@ -0,0 +1 @@ + From 704295368dcf04e8be0860e52d1c1560aedb88b7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:30:47 -0400 Subject: [PATCH 241/440] Update home.md --- docs/_pages/en/home.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index f67381b4..a8a6858e 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -5,7 +5,4 @@ lang: en permalink: "/home/" trans_url: "/accueil/" --- - -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. - -Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. +{% include home.md %} From 52d4e7fc1ef53e2900f1f24767861196478a5bee Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:30:56 -0400 Subject: [PATCH 242/440] Update home.md --- docs/_includes/home.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index 8b137891..11e96e24 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -1 +1,4 @@ +Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + +Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. From 3060bb5e00562efca55dc6c0272bc77864fd89e4 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:31:38 -0400 Subject: [PATCH 243/440] Update accueil.md --- docs/_pages/fr/accueil.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/fr/accueil.md b/docs/_pages/fr/accueil.md index 09667f2f..dcd69c17 100644 --- a/docs/_pages/fr/accueil.md +++ b/docs/_pages/fr/accueil.md @@ -5,3 +5,5 @@ lang: fr permalink: "/accueil/" trans_url: "/home/" --- + +{% include accueil.md %} From a2fe2110adce904696b9baf3c88f330cf7026864 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:37:55 -0400 Subject: [PATCH 244/440] Update translations.yml --- docs/_data/translations.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 007c72e1..c38aa3fd 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,11 +1,9 @@ en: homepage-tag-line: "Version 1: Limited Pilot" -" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" - built-by: "subtitle: This documentation is for API developers retrieving form submissions from -" + built-by: "subtitle: This documentation is for API developers retrieving form submissions from" contribute: "Explore the GC Forms API" repo: "Repository" language: "Français" From 536026e6fe89b8f2bc1a554c9f9d75072afcd296 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:45:36 -0400 Subject: [PATCH 245/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 4b5b3077..99d12335 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -4,6 +4,12 @@ title: "Making requests" lang: en permalink: "/making-requests/" trans_url: "/faire-des-requetes/" +childPages: + - Retrieving new form submissions + - Retrieving specific form submissions + - Confirming form submissions + - Reporting a problem with a form submission + - Getting form questions --- The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. From 8db2828ddb343f0b088bdde80144b0bd763211bd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:46:50 -0400 Subject: [PATCH 246/440] Create retrieving-new-form-submissions.md --- docs/_pages/en/retrieving-new-form-submissions.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/retrieving-new-form-submissions.md diff --git a/docs/_pages/en/retrieving-new-form-submissions.md b/docs/_pages/en/retrieving-new-form-submissions.md new file mode 100644 index 00000000..e30f2dc3 --- /dev/null +++ b/docs/_pages/en/retrieving-new-form-submissions.md @@ -0,0 +1 @@ + - Retrieving new form submissions From 7bfa4fe2e057f0c68be0f05c6a3bb52e3dcceb62 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:47:11 -0400 Subject: [PATCH 247/440] Create retrieving-specific-form-submissions.md --- docs/_pages/en/retrieving-specific-form-submissions.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/retrieving-specific-form-submissions.md diff --git a/docs/_pages/en/retrieving-specific-form-submissions.md b/docs/_pages/en/retrieving-specific-form-submissions.md new file mode 100644 index 00000000..2e1c5f3b --- /dev/null +++ b/docs/_pages/en/retrieving-specific-form-submissions.md @@ -0,0 +1 @@ + - Retrieving specific form submissions From 12d29724aac868c4859deacac4e3c4fd9e8e0e48 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:47:28 -0400 Subject: [PATCH 248/440] Create confirming-form-submissions --- docs/_pages/en/confirming-form-submissions | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/confirming-form-submissions diff --git a/docs/_pages/en/confirming-form-submissions b/docs/_pages/en/confirming-form-submissions new file mode 100644 index 00000000..90555dbd --- /dev/null +++ b/docs/_pages/en/confirming-form-submissions @@ -0,0 +1 @@ + - Confirming form submissions From 84ac77a72479e57cf03d674523a6d3bc0d246a72 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:47:41 -0400 Subject: [PATCH 249/440] Rename confirming-form-submissions to confirming-form-submissions.md --- ...confirming-form-submissions => confirming-form-submissions.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/_pages/en/{confirming-form-submissions => confirming-form-submissions.md} (100%) diff --git a/docs/_pages/en/confirming-form-submissions b/docs/_pages/en/confirming-form-submissions.md similarity index 100% rename from docs/_pages/en/confirming-form-submissions rename to docs/_pages/en/confirming-form-submissions.md From f0278c35fa953ff721b2c6231c384e0407b94c8e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:48:05 -0400 Subject: [PATCH 250/440] Create reporting-a-problem-with-a-form-submission --- docs/_pages/en/reporting-a-problem-with-a-form-submission | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/reporting-a-problem-with-a-form-submission diff --git a/docs/_pages/en/reporting-a-problem-with-a-form-submission b/docs/_pages/en/reporting-a-problem-with-a-form-submission new file mode 100644 index 00000000..187c13cc --- /dev/null +++ b/docs/_pages/en/reporting-a-problem-with-a-form-submission @@ -0,0 +1 @@ + - Reporting a problem with a form submission From 896091bf6276962ed03b1e9bd018cf9f8b3e86fc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:48:17 -0400 Subject: [PATCH 251/440] Create getting-form-questions.md --- docs/_pages/en/getting-form-questions.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/_pages/en/getting-form-questions.md diff --git a/docs/_pages/en/getting-form-questions.md b/docs/_pages/en/getting-form-questions.md new file mode 100644 index 00000000..4bf716a1 --- /dev/null +++ b/docs/_pages/en/getting-form-questions.md @@ -0,0 +1 @@ + - Getting form questions From 19177998ffa95fdbfae66e48d0a27b48c3305b66 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:49:23 -0400 Subject: [PATCH 252/440] Create submenu.html --- docs/_includes/submenu.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/_includes/submenu.html diff --git a/docs/_includes/submenu.html b/docs/_includes/submenu.html new file mode 100644 index 00000000..6002eaf9 --- /dev/null +++ b/docs/_includes/submenu.html @@ -0,0 +1,13 @@ +<ul class="sub-menu"> + {% for childPage in sitePage.childPages %} {% for childrenPage in + site[page.lang] %} {% if childrenPage.title == childPage or sitePage.trans_url + == childPage %} + <li + class="sub-link {% if childrenPage.url == page.url %}sidebar-nav-active{% endif %}" + > + <a href="{{ site.baseurl }}{{ childrenPage.url }}" + >{{ childrenPage.title }}</a + > + </li> + {% endif %} {% endfor %} {% endfor %} +</ul> From 0a2203f4916a980aea760eb83362ae509ba1e179 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:52:02 -0400 Subject: [PATCH 253/440] Update sidebar.html --- docs/_includes/sidebar.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html index 267c120b..6a91bbdc 100644 --- a/docs/_includes/sidebar.html +++ b/docs/_includes/sidebar.html @@ -5,6 +5,17 @@ <ul> {% for menu in site.data.menu[page.lang] %} <li><a href="{{ site.baseurl }}{{ menu[1].url }}">{{ menu[1].name }}</a></li> + {% endfor %} + {% if sitePage.title == item.menuItem or sitePage.trans_url == item.menuItem %} + <li {% if sitePage.url == page.url %}class="sidebar-nav-active"{% endif %}> + <a href="{{ site.baseurl }}{{ sitePage.url }}">{{ sitePage.title }}</a> + {% if sitePage.childPages %} + {% include submenu.html %} + {% endif %} + </li> + {% endif %} + {% endfor %} + {% endfor %} {% endfor %} </ul> </nav> From fa3627750c9fd342a3bc5d6ef83ccb3b34e61855 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:30:40 -0400 Subject: [PATCH 254/440] Update translations.yml --- docs/_data/translations.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index c38aa3fd..38f499b1 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -3,8 +3,8 @@ en: cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" - built-by: "subtitle: This documentation is for API developers retrieving form submissions from" - contribute: "Explore the GC Forms API" + built-by: "This documentation is for API developers retrieving form submissions from" + contribute: "Contribute to the project" repo: "Repository" language: "Français" homepage-slug: "/home/" @@ -15,7 +15,7 @@ fr: cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" built-by: "Cette documentation s'adresse aux développeurs d'API qui récupèrent des soumissions de formulaire à partir de" - contribute: "Explorer l'API Formualaires GC" + contribute: "Contribuer au projet" repo: "Référentiel" language: "English" homepage-slug: "/accueil/" From b753f436d9acbdbdac791f0148c3933aad0d3e1d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:31:03 -0400 Subject: [PATCH 255/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 38f499b1..4b2a2135 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -8,7 +8,7 @@ en: repo: "Repository" language: "Français" homepage-slug: "/home/" - site-name: "GC Forms - Data retrieval API" + site-name: "GC Forms — Data retrieval API" fr: homepage-tag-line: "" cds-snc: "Formulaires GC" @@ -19,4 +19,4 @@ fr: repo: "Référentiel" language: "English" homepage-slug: "/accueil/" - site-name: "API pour récupération de données de Formulaires GC" + site-name: "API pour la récupération de données — Formulaires GC" From 2d5d9093b60d1bfaf656b0e1970a0366a4ecf2b8 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:34:32 -0400 Subject: [PATCH 256/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index f336cf27..721b79d8 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -12,12 +12,12 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev ### What you will need -- A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) -- A form set to deliver responses via “Download” in Settings -- A few “mock” responses submitted to the form -- A target system where you plan on receiving form submission data -- An API key (generated by you in Settings > API Access) -- Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API + - A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) + - A form set to deliver responses via “Download” in Settings + - A few “mock” responses submitted to the form + - A target system where you plan on receiving form submission data + - An API key (generated by you in Settings > API Access) + - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API ^ No infrastructure development capabilities available? ^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. @@ -25,10 +25,10 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev ### Getting the API key **To create an API key for this initial integration testing:** -1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). -2. Create a draft form. -3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. -4. Click “Generate Key”. -5. Download JSON file that includes the private API key. + 1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). + 2. Create a draft form. + 3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. + 4. Click “Generate Key”. + 5. Download JSON file that includes the private API key. -> **IMPORTANT** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +> :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 029f138f19d7873c48d68a5a040fad68ff9a288f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:32:07 -0400 Subject: [PATCH 257/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 4b2a2135..ebe989b2 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1: Limited Pilot" + homepage-tag-line: "Version 1: Pilot project" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "" + homepage-tag-line: "Version 1: Projet pilote" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" From fe545164ba48d7adadf5c67a421afa65cea2d6cd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:41:25 -0400 Subject: [PATCH 258/440] Update menu.yml --- docs/_data/menu.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index cb010077..cf53a644 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -11,6 +11,21 @@ en: making-requests: name: "Making requests" url: "/making-requests/" + retrieving-new-form-submissions: + name: "Retrieving new form submissions" + url: "/retrieving-new-form-submissions/" + retrieving-specific-form-submissions: + name: "Retrieving specific form submissions" + url: "/retrieving-specific-form-submissions/" + confirming-form-submissions.md: + name: "Confirming form submissions" + url: "/confirming-form-submissions/" + reporting-a-problem-with-a-form-submission: + name: "Reporting a problem with a form submission" + url: "/reporting-a-problem-with-a-form-submission/" + getting-form-questions: + name: "Getting form questions" + url: "/getting-form-questions/" monitoring: name: "Monitoring" url: "/monitoring/" @@ -31,6 +46,21 @@ fr: making-requests: name: "Faire des requêtes" url: "/faire-des-requetes/" + retrieving-new-form-submissions: + name: "Retrieving new form submissions [FR]" + url: "/retrieving-new-form-submissions/" + retrieving-specific-form-submissions: + name: "Retrieving specific form submissions [FR]" + url: "/retrieving-specific-form-submissions/" + confirming-form-submissions.md: + name: "Confirming form submissions [FR]" + url: "/confirming-form-submissions/" + reporting-a-problem-with-a-form-submission: + name: "Reporting a problem with a form submission [FR]" + url: "/reporting-a-problem-with-a-form-submission/" + getting-form-questions: + name: "Getting form questions [FR]" + url: "/getting-form-questions/" monitoring: name: "Surveiller" url: "/surveiller/" From 0b66acf0362cb5b341654fe8fa52fe75d8b2fa38 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:43:16 -0400 Subject: [PATCH 259/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 721b79d8..38313402 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -31,4 +31,4 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -> :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +:warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 446e132fd19c29659fa430ea0bb0e3f99e719e1d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:43:31 -0400 Subject: [PATCH 260/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 38313402..df37edbe 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -19,8 +19,8 @@ The purpose of the GC Forms API is to allow you to securely and reliably retriev - An API key (generated by you in Settings > API Access) - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -^ No infrastructure development capabilities available? -^ This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. +> No infrastructure development capabilities available? +> This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. ### Getting the API key From 6a75b58b402d6860ac73087d32b0b0ac14ea6ebc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:50:17 -0400 Subject: [PATCH 261/440] Update _config.yml --- docs/_config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index c1c41b5c..685e8973 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -16,13 +16,12 @@ collections: pages: output: true permalink: /:path/ - + # Theme remote_theme: pages-themes/minimal@v0.2.0 #Plugins plugins: -- jekyll-remote-theme # add this line to the plugins list if you already have one - jekyll-coffeescript - jekyll-commonmark-ghpages - jekyll-default-layout @@ -31,6 +30,7 @@ plugins: - jekyll-optional-front-matter - jekyll-paginate - jekyll-readme-index +- jekyll-remote-theme - jekyll-relative-links - jekyll-titles-from-headings - jekyll-relative-links From 634fe77b32dac32f4486d124f2510e5447b74df7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:50:33 -0400 Subject: [PATCH 262/440] Update sidebar.html --- docs/_includes/sidebar.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html index 6a91bbdc..97919b5f 100644 --- a/docs/_includes/sidebar.html +++ b/docs/_includes/sidebar.html @@ -14,7 +14,6 @@ {% endif %} </li> {% endif %} - {% endfor %} {% endfor %} {% endfor %} </ul> From 45036ed0ff79a5857cf86ef5b5943ae8f4e2e3fa Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:52:24 -0400 Subject: [PATCH 263/440] Update sidebar.html --- docs/_includes/sidebar.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html index 97919b5f..29ea2760 100644 --- a/docs/_includes/sidebar.html +++ b/docs/_includes/sidebar.html @@ -14,7 +14,6 @@ {% endif %} </li> {% endif %} - {% endfor %} {% endfor %} </ul> </nav> From 160fefbc8d8f0846681c287f6e47bbc5548c4873 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:55:27 -0400 Subject: [PATCH 264/440] Update sidebar.html --- docs/_includes/sidebar.html | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_includes/sidebar.html b/docs/_includes/sidebar.html index 29ea2760..efacb8d8 100644 --- a/docs/_includes/sidebar.html +++ b/docs/_includes/sidebar.html @@ -14,7 +14,6 @@ {% endif %} </li> {% endif %} - {% endfor %} </ul> </nav> </aside> From 4e6bd4309b2a1a4f7dcf13a980ed6d3373170388 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:58:31 -0400 Subject: [PATCH 265/440] Update submenu.html --- docs/_includes/submenu.html | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/docs/_includes/submenu.html b/docs/_includes/submenu.html index 6002eaf9..0b5be88e 100644 --- a/docs/_includes/submenu.html +++ b/docs/_includes/submenu.html @@ -1,13 +1,10 @@ <ul class="sub-menu"> - {% for childPage in sitePage.childPages %} {% for childrenPage in - site[page.lang] %} {% if childrenPage.title == childPage or sitePage.trans_url - == childPage %} - <li - class="sub-link {% if childrenPage.url == page.url %}sidebar-nav-active{% endif %}" - > - <a href="{{ site.baseurl }}{{ childrenPage.url }}" - >{{ childrenPage.title }}</a - > + {% for childPage in sitePage.childPages %} + {% for childrenPage in site[page.lang] %} + {% if childrenPage.title == childPage or sitePage.trans_url == childPage %} + + <li class="sub-link {% if childrenPage.url == page.url %}sidebar-nav-active{% endif %}" > + <a href="{{ site.baseurl }}{{ childrenPage.url }}" >{{ childrenPage.title }}</a> </li> {% endif %} {% endfor %} {% endfor %} </ul> From 4bc2ae17e383a9cb8934fbbb497e692f26ec0dc4 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:03:20 -0400 Subject: [PATCH 266/440] Update menu.yml --- docs/_data/menu.yml | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index cf53a644..cb010077 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -11,21 +11,6 @@ en: making-requests: name: "Making requests" url: "/making-requests/" - retrieving-new-form-submissions: - name: "Retrieving new form submissions" - url: "/retrieving-new-form-submissions/" - retrieving-specific-form-submissions: - name: "Retrieving specific form submissions" - url: "/retrieving-specific-form-submissions/" - confirming-form-submissions.md: - name: "Confirming form submissions" - url: "/confirming-form-submissions/" - reporting-a-problem-with-a-form-submission: - name: "Reporting a problem with a form submission" - url: "/reporting-a-problem-with-a-form-submission/" - getting-form-questions: - name: "Getting form questions" - url: "/getting-form-questions/" monitoring: name: "Monitoring" url: "/monitoring/" @@ -46,21 +31,6 @@ fr: making-requests: name: "Faire des requêtes" url: "/faire-des-requetes/" - retrieving-new-form-submissions: - name: "Retrieving new form submissions [FR]" - url: "/retrieving-new-form-submissions/" - retrieving-specific-form-submissions: - name: "Retrieving specific form submissions [FR]" - url: "/retrieving-specific-form-submissions/" - confirming-form-submissions.md: - name: "Confirming form submissions [FR]" - url: "/confirming-form-submissions/" - reporting-a-problem-with-a-form-submission: - name: "Reporting a problem with a form submission [FR]" - url: "/reporting-a-problem-with-a-form-submission/" - getting-form-questions: - name: "Getting form questions [FR]" - url: "/getting-form-questions/" monitoring: name: "Surveiller" url: "/surveiller/" From 38d25f3ffe4bad4a25eaa1ea14e633c7415a9121 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:04:16 -0400 Subject: [PATCH 267/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index ebe989b2..187510e1 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1: Pilot project" + homepage-tag-line: "Version 1: Limited pilot" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 1: Projet pilote" + homepage-tag-line: "Version 1: Pilote limité" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" From 2790551ce3a5f3dea521ca3cc806a3969510b1f2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:12:11 -0400 Subject: [PATCH 268/440] Update default.html --- docs/_layouts/default.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html index 0e12c593..4fd544f1 100644 --- a/docs/_layouts/default.html +++ b/docs/_layouts/default.html @@ -57,8 +57,7 @@ <h2 class="float-right"><a href="{{ site.baseurl }}{{ page.trans_url }}">{{ site <footer role="contentinfo"> <div class="wrap"> <p>{{site.data.translations[page.lang].built-by}} <a href="{{ site.data.translations[page.lang].cds-snc-url }}">{{ site.data.translations[page.lang].cds-snc}}</a>.</p> - <p><a href="https://github.com/cds-snc/forms-api">{{site.data.translations[page.lang].contribute}}.</a></p> - <p>{{site.data.translations[page.lang].hosting}} <a href="http://pages.github.com/">GitHub Pages</a>.</p> + <p>{{site.data.translations[page.lang].hosting}} GitHub Pages. <a href="https://github.com/cds-snc/forms-api">{{site.data.translations[page.lang].contribute}}.</a></p> </div><!--/.wrap --> </footer> </div> <!-- /.container --> From 0545a0344760df4a41d107a52f706d18f815cf28 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:14:55 -0400 Subject: [PATCH 269/440] Delete docs/_pages/en/confirming-form-submissions.md --- docs/_pages/en/confirming-form-submissions.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_pages/en/confirming-form-submissions.md diff --git a/docs/_pages/en/confirming-form-submissions.md b/docs/_pages/en/confirming-form-submissions.md deleted file mode 100644 index 90555dbd..00000000 --- a/docs/_pages/en/confirming-form-submissions.md +++ /dev/null @@ -1 +0,0 @@ - - Confirming form submissions From 84c9571cafe2316158567553b48ed7293b2ad802 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:15:03 -0400 Subject: [PATCH 270/440] Delete docs/_pages/en/retrieving-new-form-submissions.md --- docs/_pages/en/retrieving-new-form-submissions.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_pages/en/retrieving-new-form-submissions.md diff --git a/docs/_pages/en/retrieving-new-form-submissions.md b/docs/_pages/en/retrieving-new-form-submissions.md deleted file mode 100644 index e30f2dc3..00000000 --- a/docs/_pages/en/retrieving-new-form-submissions.md +++ /dev/null @@ -1 +0,0 @@ - - Retrieving new form submissions From 940e5b1fb26f64d47f12c85aa4b32f56acf5173c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:15:10 -0400 Subject: [PATCH 271/440] Delete docs/_pages/en/retrieving-specific-form-submissions.md --- docs/_pages/en/retrieving-specific-form-submissions.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_pages/en/retrieving-specific-form-submissions.md diff --git a/docs/_pages/en/retrieving-specific-form-submissions.md b/docs/_pages/en/retrieving-specific-form-submissions.md deleted file mode 100644 index 2e1c5f3b..00000000 --- a/docs/_pages/en/retrieving-specific-form-submissions.md +++ /dev/null @@ -1 +0,0 @@ - - Retrieving specific form submissions From e5d5219c80439197ffb668765ad33ebad81dad89 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:15:18 -0400 Subject: [PATCH 272/440] Delete docs/_pages/en/reporting-a-problem-with-a-form-submission --- docs/_pages/en/reporting-a-problem-with-a-form-submission | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_pages/en/reporting-a-problem-with-a-form-submission diff --git a/docs/_pages/en/reporting-a-problem-with-a-form-submission b/docs/_pages/en/reporting-a-problem-with-a-form-submission deleted file mode 100644 index 187c13cc..00000000 --- a/docs/_pages/en/reporting-a-problem-with-a-form-submission +++ /dev/null @@ -1 +0,0 @@ - - Reporting a problem with a form submission From 3f9e31907a43d8319ac2e3af8926d7daa308f969 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:15:29 -0400 Subject: [PATCH 273/440] Delete docs/_pages/en/getting-form-questions.md --- docs/_pages/en/getting-form-questions.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/_pages/en/getting-form-questions.md diff --git a/docs/_pages/en/getting-form-questions.md b/docs/_pages/en/getting-form-questions.md deleted file mode 100644 index 4bf716a1..00000000 --- a/docs/_pages/en/getting-form-questions.md +++ /dev/null @@ -1 +0,0 @@ - - Getting form questions From 2702ed69ff101161373b7d6c8d8b9bed3cb7f197 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:17:21 -0400 Subject: [PATCH 274/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 99d12335..5594ecc1 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -56,10 +56,10 @@ _Note: The status of these form submissions will not change to “Downloaded”. ### Response status -| Status code | Example message | Meaning / how to fix | -| ----------- | --------------- | -------------------- | -| 200 | [ - ``` { +| Status code | Example message | Meaning or how to fix | +| :---------------- | :------ | :---- | +| 200 | ```[ + { "name": "05-09-09f4", "createdAt": 1725553403512 }, @@ -71,6 +71,4 @@ _Note: The status of these form submissions will not change to “Downloaded”. "name": "05-09-75dc", "createdAt": 1725553404972 } -] -``` - | List of new submission names successfully retrieved. +]``` | List of new submission names successfully retrieved. | From 59531b35cc668b4ac324f7165b57132c3bd0bb3a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:18:39 -0400 Subject: [PATCH 275/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 5594ecc1..ec271139 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -58,7 +58,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | -| 200 | ```[ +| 200 | ```json[ { "name": "05-09-09f4", "createdAt": 1725553403512 From 30befe13177ec9526da662483113239cf8875fb0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:22:19 -0400 Subject: [PATCH 276/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index ec271139..13825614 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -56,9 +56,15 @@ _Note: The status of these form submissions will not change to “Downloaded”. ### Response status -| Status code | Example message | Meaning or how to fix | -| :---------------- | :------ | :---- | -| 200 | ```json[ +<table> +<tr> + <td> **Status code** </td> <td> **Example message** </td> <td> **Meaning or how to fix** </td> +</tr> +<tr> + <td> 200 </td> + <td> + ```json +[ { "name": "05-09-09f4", "createdAt": 1725553403512 @@ -71,4 +77,14 @@ _Note: The status of these form submissions will not change to “Downloaded”. "name": "05-09-75dc", "createdAt": 1725553404972 } -]``` | List of new submission names successfully retrieved. | +] + ``` + </td> +</tr> +<tr> + <td> + List of new submission names successfully retrieved. + </td> +</tr> + +</table> From c8bca1a76bbe1c7bcacb5db118597d6b752ea27d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:22:51 -0400 Subject: [PATCH 277/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 13825614..cd9e6695 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -80,11 +80,8 @@ _Note: The status of these form submissions will not change to “Downloaded”. ] ``` </td> -</tr> -<tr> <td> List of new submission names successfully retrieved. </td> </tr> - </table> From d290f3ecf3f2578d4dd3659a65301c3464d41213 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:23:49 -0400 Subject: [PATCH 278/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index cd9e6695..44df841c 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -58,7 +58,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. <table> <tr> - <td> **Status code** </td> <td> **Example message** </td> <td> **Meaning or how to fix** </td> + <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> </tr> <tr> <td> 200 </td> From 923cf24133de5873e14a6209a51b90dab3b9eddd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:24:05 -0400 Subject: [PATCH 279/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 44df841c..7d71bed7 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -63,7 +63,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. <tr> <td> 200 </td> <td> - ```json + ``` [ { "name": "05-09-09f4", From b89d23da0bff33239241469c20208c990b9f7d3c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:25:23 -0400 Subject: [PATCH 280/440] Update home.md --- docs/_pages/en/home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/home.md b/docs/_pages/en/home.md index a8a6858e..bf3a2e45 100644 --- a/docs/_pages/en/home.md +++ b/docs/_pages/en/home.md @@ -1,6 +1,6 @@ --- layout: page -title: "Welcome" +title: "Home" lang: en permalink: "/home/" trans_url: "/accueil/" From 7ddd488bb52352cb108dfe7c129f3a85848cc0d0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:25:35 -0400 Subject: [PATCH 281/440] Update accueil.md --- docs/_pages/fr/accueil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/accueil.md b/docs/_pages/fr/accueil.md index dcd69c17..ec303052 100644 --- a/docs/_pages/fr/accueil.md +++ b/docs/_pages/fr/accueil.md @@ -1,6 +1,6 @@ --- layout: page -title: "Bienvenue" +title: "Accueil" lang: fr permalink: "/accueil/" trans_url: "/home/" From 8219d3177c3366cabb8a9b0cbfa95fc81f72200e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:28:26 -0400 Subject: [PATCH 282/440] Update home.md --- docs/_includes/home.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index 11e96e24..ea00c895 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -1,4 +1,16 @@ +## Welcome + Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. +## Overview + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + +The documentation includes what you need to know about: + - Getting started + - Authentication + - Making requests + - Monitoring + - Getting support From e776c530e0524ad78814b2466289139b90f673d6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:29:06 -0400 Subject: [PATCH 283/440] Update accueil.md --- docs/_includes/accueil.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index 8b137891..6aec14fd 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1 +1,3 @@ +## Bienvenue +_la version française sera publiée d'ici peu_ From 2038532ddc920d90b2969d2564bf5dbc8070eb16 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:29:32 -0400 Subject: [PATCH 284/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index df37edbe..9a0070e7 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -6,10 +6,6 @@ permalink: "/getting-started/" trans_url: "/pour-commencer/" --- -### Overview - -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. - ### What you will need - A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) From 270999ef1089caab38ef62fb5eda77233affa849 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:29:54 -0400 Subject: [PATCH 285/440] Update home.md --- docs/_includes/home.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index ea00c895..d617a5a6 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -1,10 +1,10 @@ -## Welcome +### Welcome Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. -## Overview +### Overview The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. From bd9910c780e283931f808702cafd6cec92614922 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:30:54 -0400 Subject: [PATCH 286/440] Update home.md --- docs/_includes/home.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index d617a5a6..5458fdbc 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -9,8 +9,8 @@ Our goal is to guide you through setting up an initial integration and securely The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. The documentation includes what you need to know about: - - Getting started - - Authentication - - Making requests - - Monitoring - - Getting support + - [Getting started](/getting-started) + - [Authentication](/authentication) + - [Making requests](/making-requests) + - [Monitoring](/monitoring) + - [Getting support](getting-support) From 7e814015fbb25aa69bd460619ff1f64aa8c63a08 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:31:10 -0400 Subject: [PATCH 287/440] Update accueil.md --- docs/_includes/accueil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index 6aec14fd..c7855beb 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1,3 +1,3 @@ -## Bienvenue +### Bienvenue _la version française sera publiée d'ici peu_ From 37f1f518d8ba5f1ee7e5de95fd1f5d1b7d93be29 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:34:40 -0400 Subject: [PATCH 288/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 9a0070e7..89383710 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -8,17 +8,17 @@ trans_url: "/pour-commencer/" ### What you will need - - A [GC Forms staging account](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) + - A **[GC Forms staging account]**(https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) - A form set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - - An API key (generated by you in Settings > API Access) + - An API key **(generated by you in Settings > API Access) ** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> No infrastructure development capabilities available? -> This first version of the API might not be ready for you just yet. Consider choosing an alternative no-code delivery option to get responses by email or download them from GC Forms instead. +> **No infrastructure development capabilities available? ** +> This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. -### Getting the API key +### Getting an API key **To create an API key for this initial integration testing:** 1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). @@ -27,4 +27,8 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. +<table> +<tr> :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +</tr> +</table> From ac057c915ccee517672a3a0450cb90914cc349c3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:36:46 -0400 Subject: [PATCH 289/440] Update authentication.md --- docs/_pages/en/authentication.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 1331ace8..04b1f05e 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -6,7 +6,7 @@ permalink: "/authentication/" trans_url: "/authentification/" --- -## Base URL +### Base URL **Now: _Staging_** currently available for prototyping purposes (temporarily) ```https://api.forms-staging.cdssandbox.xyz/``` @@ -14,7 +14,9 @@ trans_url: "/authentification/" **Later: _Production_** coming soon, not yet avialable for real live forms (eventually) ```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` -## How authentication works +_Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ + +### How authentication works The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. @@ -22,7 +24,7 @@ Authentication is done through an opaque token, with basic authorization handled The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. -## Integration examples +### Integration examples Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. @@ -32,7 +34,7 @@ Use these examples as a reference to generate access tokens in your preferred pr - [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) - [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) -## Authorization header +### Authorization header Use this header for each API request to verify it’s you: From 9f10b653bebb635918fe2ea269982dae3a257ddb Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:56:10 -0400 Subject: [PATCH 290/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 231 +++++++++++++++++++++++++++--- 1 file changed, 212 insertions(+), 19 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 7d71bed7..d8d37632 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -5,35 +5,33 @@ lang: en permalink: "/making-requests/" trans_url: "/faire-des-requetes/" childPages: - - Retrieving new form submissions - - Retrieving specific form submissions - - Confirming form submissions - - Reporting a problem with a form submission - - Getting form questions + - Retrieving new form submissions + - Retrieving specific form submissions + - Confirming form submissions + - Reporting a problem with a form submission + - Getting form questions --- The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. +<table> + <tr> **Query parameters** The API requests for GC Forms submission data are possible using query parameters such as: - - - **{formID}** 25-character alphanumeric string found at the end of the URL for the form or at the start of the file name of the API key. For example: ```clzvj8fzb00226o90r2b7l1gt```. - - - **{SubmissionName}** 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms app. For example: ```e02-08-d732```. - - - **{ConfirmationCode}** 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the GC Forms app. - For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. + For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. + </tr> +</table> **Examples** @@ -44,9 +42,9 @@ We’ve developed some examples that you can reference or run the program for, t - [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) - [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) -## Retrieving **new** form submissions +### Retrieving **new** form submissions -### HTTP request +##### HTTP request This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: @@ -54,7 +52,7 @@ This URL path returns a list of submissions that includes the 100 oldest form su _Note: The status of these form submissions will not change to “Downloaded”._ -### Response status +##### Response status <table> <tr> @@ -63,8 +61,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. <tr> <td> 200 </td> <td> - ``` -[ +```[ { "name": "05-09-09f4", "createdAt": 1725553403512 @@ -77,11 +74,207 @@ _Note: The status of these form submissions will not change to “Downloaded”. "name": "05-09-75dc", "createdAt": 1725553404972 } -] - ``` +]``` </td> <td> List of new submission names successfully retrieved. </td> </tr> </table> + +### Retrieving **specific** form submissions + +#### Getting the form submission + +##### HTTP request + +This URL path returns one form submission per request based on the respective submission name: + +```GET /forms/{formID}/submission/{submissionName}``` + +_Note: Retrieval is only possible for 1 submission, with 1 download per request. The status of these form submissions will not change to “Downloaded”. To change the status of the form submissions, make a request to confirm form submissions once they are properly received._ + +##### Response status + +<table> +<tr> + <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> +</tr> +<tr> + <td> 200 </td> + <td> +```{ + "encryptedResponses": "IOWyM7bpo+wVCXpFkU13JeO0HcxFHTIwLX17ol+jUWdvhicIG+fJj", + "encryptedKey": "IOWyM7bpELZg4kPBOPVe7jeHcxFHTIwLX17ol+jUw6KGictIG+fJj", + "encryptedNonce": "GVyPXC/6UTteJ3uf8d6doBNbppHzKjEXDxwE2DXQbD30/vIxlsY", + "encryptedAuthTag": "VRMt87LgedVo+wVCXpFkU13JeO0guDGHb48XVpvWdvhs3bv/D" +}``` + </td> + <td> + Encrypted data of the submission successfully retrieved. + </td> +</tr> +<tr> + <td> 404 </td> + <td> +```{ + "error": "Form submission does not exist" +}``` + </td> + <td> + "Form ID" and/or "Submission name" are incorrect or cannot be found. + </td> +</tr> +</table> + +#### Decrypting the data + +Security of the system is paramount and it is enhanced by encrypting form submissions. While encrypted in HTTPS, we’ve added another layer of security with AES-256-GSM encryption. When you get a form submission it will be encrypted and it will come with an encrypted key, an encrypted nonce, and an encrypted AuthTag. These can be decrypted using the Private key. + +### **Confirming** form submissions + +The confirmation step helps ensure the form submissions are exploitable and render as expected before they are permanently removed from the GC Forms system’s database. + +##### HTTP request + +This URL path confirms form submissions were successfully retrieved from the system, thus removing them: + +```PUT /forms/{formID}/submission/{submissionName}/confirm/{confirmationCode}``` + +_Note: Confirmation is only possible for one submission at a time, with one confirmation code per request. The status of that submission will be modified from “New” to “Confirmed”. This is similar to the two-step “Download” and “Sign off on removal” process in the application._ + +##### Response status + +<table> +<tr> + <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> +</tr> +<tr> + <td> 200 </td> + <td> ```OK``` </td> + <td> Submission has been successfully confirmed</td> +</tr> +<tr> + <td> 200 </td> + <td> +```{ + "info": "Form submission is already confirmed" +}``` + </td> + <td> + Submission has already been successfully confirmed. + </td> +</tr> +<tr> + <td> 400 </td> + <td> +```{ + "error": "Confirmation code is incorrect" +}``` + </td> + <td> + Provided confirmation code is not the one associated with the submission to be confirmed. + </td> +</tr> +<tr> + <td> 404 </td> + <td> +```{ + "error": "Form submission does not exist" +}``` + </td> + <td> + "Form ID" and/or "Submission name" are incorrect or cannot be found. + </td> +</tr> +</table> + +### Reporting a problem with a form submission + +##### HTTP request + +This URL path identifies a form submission as having a problem if something unexpected occurs: + +```POST /forms/{formID}/submission/{submissionName}/problem``` + +_Note: Reporting a problem is only possible for one submission at a time. You can report a problem with form submissions that are “New” or “Confirmed” as long as they have not been removed from the system. This will change the status to “Problem” and block the submission’s removal from the system until the problem is resolved._ + +##### Example payload for reporting a problem + +To report a problem include a message formatted like the one below in the HTTP POST request body: + +``` +{ + “contactEmail”: “something@somethingelse.com”, + “description”: “Here is my problem”, + “preferredLanguage”: “en” (either “en” or “fr”) +} +``` + +_Note: This will be directed to our support team._ + + +##### Response status + +<table> +<tr> + <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> +</tr> +<tr> + <td> 200 </td> + <td> ```OK``` </td> + <td> Submission has been successfully reported as having a problem</td> +</tr> +<tr> + <td> 200 </td> + <td> +``` +{ + "info": "Form submission is already confirmed" +} +``` + </td> + <td> + Submission has already been successfully reported as having a problem. + </td> +</tr> +<tr> + <td> 400 </td> + <td> +```{ + "error": "Invalid payload", + "details": [ + { + "type": "field", + "value": "test@cds-snc", + "msg": "Invalid value", + "path": "contactEmail", + "location": "body" + }, + { + "type": "field", + "value": "", + "msg": "Must be at least 10 characters long", + "path": "description", + "location": "body" + } + ] +}``` + </td> + <td> + Details about why the provided payload is invalid. + </td> +</tr> +<tr> + <td> 404 </td> + <td> +```{ + "error": "Form submission does not exist" +}``` + </td> + <td> + “Form ID” and/or “Submission name” are incorrect or could not be found. + </td> +</tr> +</table> + From 4b2c533f61335f1ba89e9590503bb2b4b8a90373 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:59:26 -0400 Subject: [PATCH 291/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 54082890..93a23e1b 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -12,11 +12,11 @@ These are common errors that apply globally and are the same for every URL path. | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | -| 401 | Unauthorized | No access token was provided. | -| 401 | Access token has expired | Access token has expired | -| 403 | Forbidden | Could not validate access token OR "Form ID" in request is not allowed to be accessed with the provided access token. | -| 404 | Not found | Invalid request URL. | -| 500 | Internal server error | Internal error while serving request. | +| 401 | <code>Unauthorized</code> | No access token was provided. | +| 401 | <code>Access token has expired</code> | Access token has expired | +| 403 | <code>Forbidden</code> | Could not validate access token OR "Form ID" in request is not allowed to be accessed with the provided access token. | +| 404 | <code>Not found</code> | Invalid request URL. | +| 500 | <code>Internal server error</code> | Internal error while serving request. | ### Refreshing API keys From 0f6db674676c391def42a92508099a88b16dfde7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:00:26 -0400 Subject: [PATCH 292/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 93a23e1b..ba07cb65 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -12,11 +12,11 @@ These are common errors that apply globally and are the same for every URL path. | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | -| 401 | <code>Unauthorized</code> | No access token was provided. | -| 401 | <code>Access token has expired</code> | Access token has expired | -| 403 | <code>Forbidden</code> | Could not validate access token OR "Form ID" in request is not allowed to be accessed with the provided access token. | -| 404 | <code>Not found</code> | Invalid request URL. | -| 500 | <code>Internal server error</code> | Internal error while serving request. | +| <code>401</code> | <code>Unauthorized</code> | No access token was provided. | +| <code>401</code> | <code>Access token has expired</code> | Access token has expired | +| <code>403</code> | <code>Forbidden</code> | Could not validate access token OR "Form ID" in request is not allowed to be accessed with the provided access token. | +| <code>404</code> | <code>Not found</code> | Invalid request URL. | +| <code>500</code> | <code>Internal server error</code> | Internal error while serving request. | ### Refreshing API keys From af848f0bd01f18c852d03796625345962b824e70 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:02:50 -0400 Subject: [PATCH 293/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index d8d37632..4b184e14 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -1,15 +1,15 @@ --- layout: page -title: "Making requests" +title: "Making requests" lang: en permalink: "/making-requests/" trans_url: "/faire-des-requetes/" childPages: - - Retrieving new form submissions - - Retrieving specific form submissions - - Confirming form submissions - - Reporting a problem with a form submission - - Getting form questions + - Retrieving new form submissions + - Retrieving specific form submissions + - Confirming form submissions + - Reporting a problem with a form submission + - Getting form questions --- The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. From 61ef078e5255e159a0463027a2b220410bc02c88 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:05:07 -0400 Subject: [PATCH 294/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 36 ++++++++++++++----------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 4b184e14..db788517 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -14,24 +14,20 @@ childPages: The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. -<table> - <tr> -**Query parameters** -The API requests for GC Forms submission data are possible using query parameters such as: -- **{formID}** +> **Query parameters** +> The API requests for GC Forms submission data are possible using query parameters such as: +> - **{formID}** 25-character alphanumeric string found at the end of the URL for the form or at the start of the file name of the API key. For example: ```clzvj8fzb00226o90r2b7l1gt```. -- **{SubmissionName}** +> - **{SubmissionName}** 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms app. For example: ```e02-08-d732```. -- **{ConfirmationCode}** +> - **{ConfirmationCode}** 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the GC Forms app. For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. - </tr> -</table> **Examples** @@ -59,7 +55,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> </tr> <tr> - <td> 200 </td> + <td><code>200</code></td> <td> ```[ { @@ -101,7 +97,7 @@ _Note: Retrieval is only possible for 1 submission, with 1 download per request. <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> </tr> <tr> - <td> 200 </td> + <td><code>200</code></td> <td> ```{ "encryptedResponses": "IOWyM7bpo+wVCXpFkU13JeO0HcxFHTIwLX17ol+jUWdvhicIG+fJj", @@ -115,7 +111,7 @@ _Note: Retrieval is only possible for 1 submission, with 1 download per request. </td> </tr> <tr> - <td> 404 </td> + <td><code>404</code></td> <td> ```{ "error": "Form submission does not exist" @@ -150,12 +146,12 @@ _Note: Confirmation is only possible for one submission at a time, with one conf <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> </tr> <tr> - <td> 200 </td> + <td><code>200</code></td> <td> ```OK``` </td> <td> Submission has been successfully confirmed</td> </tr> <tr> - <td> 200 </td> + <td><code>200</code></td> <td> ```{ "info": "Form submission is already confirmed" @@ -166,7 +162,7 @@ _Note: Confirmation is only possible for one submission at a time, with one conf </td> </tr> <tr> - <td> 400 </td> + <td><code>400</code></td> <td> ```{ "error": "Confirmation code is incorrect" @@ -177,7 +173,7 @@ _Note: Confirmation is only possible for one submission at a time, with one conf </td> </tr> <tr> - <td> 404 </td> + <td><code>404</code></td> <td> ```{ "error": "Form submission does not exist" @@ -221,12 +217,12 @@ _Note: This will be directed to our support team._ <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> </tr> <tr> - <td> 200 </td> + <td><code>200</code></td> <td> ```OK``` </td> <td> Submission has been successfully reported as having a problem</td> </tr> <tr> - <td> 200 </td> + <td><code>200</code></td> <td> ``` { @@ -239,7 +235,7 @@ _Note: This will be directed to our support team._ </td> </tr> <tr> - <td> 400 </td> + <td><code>400</code></td> <td> ```{ "error": "Invalid payload", @@ -266,7 +262,7 @@ _Note: This will be directed to our support team._ </td> </tr> <tr> - <td> 404 </td> + <td><code>400</code></td> <td> ```{ "error": "Form submission does not exist" From 57c7ec961c34de1593aa71f49adbe140cfb8d44c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:05:38 -0400 Subject: [PATCH 295/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index db788517..7f193619 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -57,7 +57,8 @@ _Note: The status of these form submissions will not change to “Downloaded”. <tr> <td><code>200</code></td> <td> -```[ +<code> + [ { "name": "05-09-09f4", "createdAt": 1725553403512 @@ -70,7 +71,8 @@ _Note: The status of these form submissions will not change to “Downloaded”. "name": "05-09-75dc", "createdAt": 1725553404972 } -]``` +] +</code> </td> <td> List of new submission names successfully retrieved. From 06533098f1732f6556c514f0f291109a03a526d6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:08:10 -0400 Subject: [PATCH 296/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 42 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 7f193619..a742d1b9 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -57,8 +57,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. <tr> <td><code>200</code></td> <td> -<code> - [ +<code>[ { "name": "05-09-09f4", "createdAt": 1725553403512 @@ -71,8 +70,7 @@ _Note: The status of these form submissions will not change to “Downloaded”. "name": "05-09-75dc", "createdAt": 1725553404972 } -] -</code> +]</code> </td> <td> List of new submission names successfully retrieved. @@ -101,12 +99,12 @@ _Note: Retrieval is only possible for 1 submission, with 1 download per request. <tr> <td><code>200</code></td> <td> -```{ +<code>{ "encryptedResponses": "IOWyM7bpo+wVCXpFkU13JeO0HcxFHTIwLX17ol+jUWdvhicIG+fJj", "encryptedKey": "IOWyM7bpELZg4kPBOPVe7jeHcxFHTIwLX17ol+jUw6KGictIG+fJj", "encryptedNonce": "GVyPXC/6UTteJ3uf8d6doBNbppHzKjEXDxwE2DXQbD30/vIxlsY", "encryptedAuthTag": "VRMt87LgedVo+wVCXpFkU13JeO0guDGHb48XVpvWdvhs3bv/D" -}``` +}</code> </td> <td> Encrypted data of the submission successfully retrieved. @@ -115,9 +113,9 @@ _Note: Retrieval is only possible for 1 submission, with 1 download per request. <tr> <td><code>404</code></td> <td> -```{ +<code>{ "error": "Form submission does not exist" -}``` +}</code> </td> <td> "Form ID" and/or "Submission name" are incorrect or cannot be found. @@ -149,15 +147,15 @@ _Note: Confirmation is only possible for one submission at a time, with one conf </tr> <tr> <td><code>200</code></td> - <td> ```OK``` </td> + <td><code>OK</code></td> <td> Submission has been successfully confirmed</td> </tr> <tr> <td><code>200</code></td> <td> -```{ +<code>{ "info": "Form submission is already confirmed" -}``` +}</code> </td> <td> Submission has already been successfully confirmed. @@ -166,9 +164,9 @@ _Note: Confirmation is only possible for one submission at a time, with one conf <tr> <td><code>400</code></td> <td> -```{ +<code>{ "error": "Confirmation code is incorrect" -}``` +}</code> </td> <td> Provided confirmation code is not the one associated with the submission to be confirmed. @@ -177,9 +175,9 @@ _Note: Confirmation is only possible for one submission at a time, with one conf <tr> <td><code>404</code></td> <td> -```{ +<code>{ "error": "Form submission does not exist" -}``` +}</code> </td> <td> "Form ID" and/or "Submission name" are incorrect or cannot be found. @@ -220,17 +218,17 @@ _Note: This will be directed to our support team._ </tr> <tr> <td><code>200</code></td> - <td> ```OK``` </td> + <td><code>OK</code></td> <td> Submission has been successfully reported as having a problem</td> </tr> <tr> <td><code>200</code></td> <td> -``` +<code> { "info": "Form submission is already confirmed" } -``` +</code> </td> <td> Submission has already been successfully reported as having a problem. @@ -239,7 +237,7 @@ _Note: This will be directed to our support team._ <tr> <td><code>400</code></td> <td> -```{ +<code>{ "error": "Invalid payload", "details": [ { @@ -257,7 +255,7 @@ _Note: This will be directed to our support team._ "location": "body" } ] -}``` +}</code> </td> <td> Details about why the provided payload is invalid. @@ -266,9 +264,9 @@ _Note: This will be directed to our support team._ <tr> <td><code>400</code></td> <td> -```{ +<code>{ "error": "Form submission does not exist" -}``` +}</code> </td> <td> “Form ID” and/or “Submission name” are incorrect or could not be found. From f0b7759f194d21835b419c3f2bad51736c5adf5b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:20:44 -0400 Subject: [PATCH 297/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index ba07cb65..7d26666b 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -9,6 +9,7 @@ trans_url: "/monitoring/" ### Common errors These are common errors that apply globally and are the same for every URL path. +/ | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | @@ -22,6 +23,7 @@ These are common errors that apply globally and are the same for every URL path. ### Refreshing API keys Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. +/ ### Requesting a rate limit increase From 9f77b84216a6044c4fe938948379bbe4ce6ed067 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:21:22 -0400 Subject: [PATCH 298/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 7d26666b..87d3d54f 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -9,7 +9,7 @@ trans_url: "/monitoring/" ### Common errors These are common errors that apply globally and are the same for every URL path. -/ +</br> | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | @@ -23,7 +23,7 @@ These are common errors that apply globally and are the same for every URL path. ### Refreshing API keys Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. -/ +</br> ### Requesting a rate limit increase From 963ef9cfda91f3f8fba066a93477b54cb81641c3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:47:52 -0400 Subject: [PATCH 299/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 89383710..21a70adb 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -7,15 +7,14 @@ trans_url: "/pour-commencer/" --- ### What you will need - - - A **[GC Forms staging account]**(https://forms-staging.cdssandbox.xyz/) (used for temporary testing only) + - A **[GC Forms staging account](https://forms-staging.cdssandbox.xyz/)** (used for temporary testing only) - A form set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - - An API key **(generated by you in Settings > API Access) ** + - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> **No infrastructure development capabilities available? ** +> No infrastructure development capabilities available? > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. ### Getting an API key From 5d2f2f54ce144bbdd9c7d7c230d1b02d1d919ada Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:48:25 -0400 Subject: [PATCH 300/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 21a70adb..7ec7fbc7 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -26,8 +26,4 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -<table> -<tr> -:warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. -</tr> -</table> +> :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From fc9a264371193d8f8a562eb2d6c1693e050d0e64 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:53:06 -0400 Subject: [PATCH 301/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 7ec7fbc7..19b8ed69 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -26,4 +26,4 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -> :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +!!! :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 6871f9dc5ddc3312d4d52189c3d8dfdba59c1b9c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:54:43 -0400 Subject: [PATCH 302/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 19b8ed69..b46ad33c 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -26,4 +26,5 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -!!! :warning: **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +> [!WARNING] +> **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From c2eef73e4eee46cc0417c410adf0d7b7d23db0da Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:55:16 -0400 Subject: [PATCH 303/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index b46ad33c..c8300fb5 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -26,5 +26,5 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -> [!WARNING] -> **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +> [!IMPORTANT] +> You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 20b60c9d58e47a32d0d8d053a3095bc8a3fafd09 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:56:00 -0400 Subject: [PATCH 304/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index c8300fb5..4cc8729e 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -14,7 +14,8 @@ trans_url: "/pour-commencer/" - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> No infrastructure development capabilities available? +> [!Note] +> **No infrastructure development capabilities available?** > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. ### Getting an API key From 731755e5d208d48f3d337030c67419a990a3a83d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:56:58 -0400 Subject: [PATCH 305/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 4cc8729e..1be80d24 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -14,7 +14,7 @@ trans_url: "/pour-commencer/" - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> [!Note] +> [!Tip] > **No infrastructure development capabilities available?** > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. @@ -27,5 +27,5 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -> [!IMPORTANT] -> You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +> [!Caution] +> **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 6c602e1369b1bf98c2dcdfdf537d216bdddd2041 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:57:28 -0400 Subject: [PATCH 306/440] Update authentication.md --- docs/_pages/en/authentication.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 04b1f05e..28f35031 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -11,8 +11,9 @@ trans_url: "/authentification/" **Now: _Staging_** currently available for prototyping purposes (temporarily) ```https://api.forms-staging.cdssandbox.xyz/``` -**Later: _Production_** coming soon, not yet avialable for real live forms (eventually) -```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` +>[!Note] +> **Later: _Production_** coming soon, not yet avialable for real live forms (eventually) +> ```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From 04a5b9897f9477cd29c64261bc5f62b0177e5395 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:58:30 -0400 Subject: [PATCH 307/440] Update authentication.md --- docs/_pages/en/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 28f35031..9df1888a 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -12,7 +12,7 @@ trans_url: "/authentification/" ```https://api.forms-staging.cdssandbox.xyz/``` >[!Note] -> **Later: _Production_** coming soon, not yet avialable for real live forms (eventually) +> **Coming soon:** Production version (not yet available for real live forms) > ```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From 79e7d2207de984302e384124fb6c02cc90c76208 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:58:49 -0400 Subject: [PATCH 308/440] Update authentication.md --- docs/_pages/en/authentication.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 9df1888a..9a37c6f1 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -8,7 +8,8 @@ trans_url: "/authentification/" ### Base URL -**Now: _Staging_** currently available for prototyping purposes (temporarily) +**Now: _Staging_** +Currently available for prototyping purposes (temporarily) ```https://api.forms-staging.cdssandbox.xyz/``` >[!Note] From 0676eea73a0d10cbdfd876398ceb5566c0d84bb6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:07:00 -0400 Subject: [PATCH 309/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 1be80d24..cbd90479 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -14,7 +14,7 @@ trans_url: "/pour-commencer/" - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> [!Tip] +> **alert#9a6700;Warning** > **No infrastructure development capabilities available?** > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. From b6b75a342a095dec817d61e3d009b4c6b3ffe538 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:09:40 -0400 Subject: [PATCH 310/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index cbd90479..d24b8a26 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -14,7 +14,7 @@ trans_url: "/pour-commencer/" - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> **alert#9a6700;Warning** +> [!NOTE] > **No infrastructure development capabilities available?** > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. @@ -27,5 +27,5 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -> [!Caution] -> **IMPORTANT:** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +> [!IMPORTANT] +> You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From b9f8aeb9ee1946d99e4f90e0d6902b9903333bcd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:10:37 -0400 Subject: [PATCH 311/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index a742d1b9..0b29bee4 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -14,22 +14,23 @@ childPages: The GC Forms API allows you to retrieve form submissions as files in JSON file format. You can get up to 100 form submissions in a batch, and these are available for up to 30 days after submission, given our current data retention periods. Form submissions are encrypted with a public key and can be decrypted by you locally. -> **Query parameters** -> The API requests for GC Forms submission data are possible using query parameters such as: -> - **{formID}** +### Query parameters + +The API requests for GC Forms submission data are possible using query parameters such as: + - **{formID}** 25-character alphanumeric string found at the end of the URL for the form or at the start of the file name of the API key. For example: ```clzvj8fzb00226o90r2b7l1gt```. -> - **{SubmissionName}** + - **{SubmissionName}** 11-character alphanumeric including dashes, sometimes also called the SubmissionID in the GC Forms app. For example: ```e02-08-d732```. -> - **{ConfirmationCode}** + - **{ConfirmationCode}** 36-character alphanumeric string that includes dashes, sometimes also called the Receipt code in the GC Forms app. For example: ```620b203c-9836-4000-bf30-1c3bcc26b834```. -**Examples** +### Integration examples We’ve developed some examples that you can reference or run the program for, that we hope will help make integration easier. Here are the programming languages currently available: From 330e1015d3eb9db0c95d447d8bf6ba399228a1a9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:11:54 -0400 Subject: [PATCH 312/440] Update home.md --- docs/_includes/home.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index 5458fdbc..f5badc5c 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -9,8 +9,8 @@ Our goal is to guide you through setting up an initial integration and securely The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. The documentation includes what you need to know about: - - [Getting started](/getting-started) - - [Authentication](/authentication) + - [Getting started]({{ site.baseurl }}//getting-started) + - [Authentication](forms-api/authentication) - [Making requests](/making-requests) - [Monitoring](/monitoring) - [Getting support](getting-support) From 002bdd65e078f52354d7606d10a48d1774786a37 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:16:10 -0400 Subject: [PATCH 313/440] Update home.md --- docs/_includes/home.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index f5badc5c..b6a3901c 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -9,8 +9,8 @@ Our goal is to guide you through setting up an initial integration and securely The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. The documentation includes what you need to know about: - - [Getting started]({{ site.baseurl }}//getting-started) + - [Getting started](forms-api/getting-started) - [Authentication](forms-api/authentication) - - [Making requests](/making-requests) - - [Monitoring](/monitoring) - - [Getting support](getting-support) + - [Making requests](forms-api/making-requests) + - [Monitoring](forms-api/monitoring) + - [Getting support](forms-api/getting-support) From 4da1896bbadcd070dbb5c6cdd73e9a356441ddab Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:16:39 -0400 Subject: [PATCH 314/440] Update getting-support.md --- docs/_pages/en/getting-support.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-support.md b/docs/_pages/en/getting-support.md index ea1bdb17..8dfb9c2f 100644 --- a/docs/_pages/en/getting-support.md +++ b/docs/_pages/en/getting-support.md @@ -5,6 +5,8 @@ lang: en permalink: "/getting-support/" trans_url: "/obtenir-du-soutien/" --- -We’re open to all questions and welcome any feedback you might have to help us improve. You can email our team directly with any questions or needs for technical support. +We’re open to all questions and welcome any feedback you might have to help us improve. + +You can email our team directly with any questions or needs for technical support. Please include your name, email address, the form ID, response IDs (if relevant), and a description of the problem. From e572b3309aaba526399aebf43faab6768b88a110 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:16:56 -0400 Subject: [PATCH 315/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index d24b8a26..b98cf458 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -14,7 +14,7 @@ trans_url: "/pour-commencer/" - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -> [!NOTE] +[!NOTE] > **No infrastructure development capabilities available?** > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. @@ -27,5 +27,5 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -> [!IMPORTANT] +[!IMPORTANT] > You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From c350dd5c72f0e0539c41256b7c495cef0b286698 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:20:26 -0400 Subject: [PATCH 316/440] Update Gemfile --- docs/Gemfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/Gemfile b/docs/Gemfile index 0c8671cd..7d2fbc58 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -1,3 +1,9 @@ source "https://rubygems.org" -gem "github-pages", group: :jekyll_plugins +gem 'jekyll' +group :jekyll_plugins do + gem 'jekyll-gfm-adminitions' + gem 'jekyll-optional-front-matter' + gem 'github-pages' +end +gem 'jekyll-remote-theme' From 7307c8335919154a547ec94fd971c457a8424872 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:22:41 -0400 Subject: [PATCH 317/440] Update _config.yml --- docs/_config.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 685e8973..ce352575 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,6 +1,12 @@ +# Site settings +title: GC Forms API +repository: cds-snc/forms-api +description: >- + This documentation site is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. + # Base configuration exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] -markdown: kramdown +markdown: kramdown, GFM lsi: false safe: true source: [your repo's top level directory] @@ -25,6 +31,7 @@ plugins: - jekyll-coffeescript - jekyll-commonmark-ghpages - jekyll-default-layout +- jekyll-gfm-admonitions - jekyll-gist - jekyll-github-metadata - jekyll-optional-front-matter From af079572dfa9a66290128813a77890d0bd874ad5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:23:06 -0400 Subject: [PATCH 318/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index b98cf458..d24b8a26 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -14,7 +14,7 @@ trans_url: "/pour-commencer/" - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API -[!NOTE] +> [!NOTE] > **No infrastructure development capabilities available?** > This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. @@ -27,5 +27,5 @@ trans_url: "/pour-commencer/" 4. Click “Generate Key”. 5. Download JSON file that includes the private API key. -[!IMPORTANT] +> [!IMPORTANT] > You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From e7ea4bf19d9b69b11f798f7f1c1b6b8a37eff8f3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:24:42 -0400 Subject: [PATCH 319/440] Update authentication.md --- docs/_pages/en/authentication.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 9a37c6f1..a5dc4063 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -8,13 +8,11 @@ trans_url: "/authentification/" ### Base URL -**Now: _Staging_** -Currently available for prototyping purposes (temporarily) +**Staging** Currently available for prototyping purposes (temporarily) ```https://api.forms-staging.cdssandbox.xyz/``` ->[!Note] -> **Coming soon:** Production version (not yet available for real live forms) -> ```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` +**Production:** Coming soon (not yet available for real live forms) +```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From f812508e44cad9f31950ee7179859adcda8ecf6b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:28:32 -0400 Subject: [PATCH 320/440] Update home.md --- docs/_includes/home.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index b6a3901c..2e572a9c 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -9,8 +9,8 @@ Our goal is to guide you through setting up an initial integration and securely The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. The documentation includes what you need to know about: - - [Getting started](forms-api/getting-started) - - [Authentication](forms-api/authentication) - - [Making requests](forms-api/making-requests) - - [Monitoring](forms-api/monitoring) - - [Getting support](forms-api/getting-support) + - [Getting started](./getting-started) + - [Authentication](./authentication) + - [Making requests](./making-requests) + - [Monitoring](./monitoring) + - [Getting support](./getting-support) From 0f6a57cc5d60cab9eaae2579b88933981dc13880 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:29:47 -0400 Subject: [PATCH 321/440] Update authentication.md --- docs/_pages/en/authentication.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index a5dc4063..051b1296 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -9,10 +9,14 @@ trans_url: "/authentification/" ### Base URL **Staging** Currently available for prototyping purposes (temporarily) -```https://api.forms-staging.cdssandbox.xyz/``` +``` +https://api.forms-staging.cdssandbox.xyz/ +``` **Production:** Coming soon (not yet available for real live forms) -```[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/)``` +``` +[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/) +``` _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From 94cd9390b13b57d92419f5facd8751f841f8e685 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:30:51 -0400 Subject: [PATCH 322/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 0b29bee4..dabd7b5b 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -45,7 +45,9 @@ We’ve developed some examples that you can reference or run the program for, t This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: -```GET /forms/{formID}/submission/new``` +``` +GET /forms/{formID}/submission/new +``` _Note: The status of these form submissions will not change to “Downloaded”._ @@ -87,7 +89,9 @@ _Note: The status of these form submissions will not change to “Downloaded”. This URL path returns one form submission per request based on the respective submission name: -```GET /forms/{formID}/submission/{submissionName}``` +``` +GET /forms/{formID}/submission/{submissionName} +``` _Note: Retrieval is only possible for 1 submission, with 1 download per request. The status of these form submissions will not change to “Downloaded”. To change the status of the form submissions, make a request to confirm form submissions once they are properly received._ @@ -136,7 +140,9 @@ The confirmation step helps ensure the form submissions are exploitable and rend This URL path confirms form submissions were successfully retrieved from the system, thus removing them: -```PUT /forms/{formID}/submission/{submissionName}/confirm/{confirmationCode}``` +``` +PUT /forms/{formID}/submission/{submissionName}/confirm/{confirmationCode} +``` _Note: Confirmation is only possible for one submission at a time, with one confirmation code per request. The status of that submission will be modified from “New” to “Confirmed”. This is similar to the two-step “Download” and “Sign off on removal” process in the application._ @@ -192,7 +198,9 @@ _Note: Confirmation is only possible for one submission at a time, with one conf This URL path identifies a form submission as having a problem if something unexpected occurs: -```POST /forms/{formID}/submission/{submissionName}/problem``` +``` +POST /forms/{formID}/submission/{submissionName}/problem +``` _Note: Reporting a problem is only possible for one submission at a time. You can report a problem with form submissions that are “New” or “Confirmed” as long as they have not been removed from the system. This will change the status to “Problem” and block the submission’s removal from the system until the problem is resolved._ From f63d7ba9aed9cbf40ed2f5019e9a02c1df0e20cd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:32:04 -0400 Subject: [PATCH 323/440] Update home.md --- docs/_includes/home.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index 2e572a9c..fe0ca5b4 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -9,8 +9,8 @@ Our goal is to guide you through setting up an initial integration and securely The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. The documentation includes what you need to know about: - - [Getting started](./getting-started) - - [Authentication](./authentication) - - [Making requests](./making-requests) - - [Monitoring](./monitoring) - - [Getting support](./getting-support) + - [Getting started](/getting-started/) + - [Authentication](/authentication/) + - [Making requests](/making-requests/) + - [Monitoring](/monitoring/) + - [Getting support](/getting-support/) From 7cd504642877202a23696255282e5221539bfff0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:51:26 -0400 Subject: [PATCH 324/440] Create style.scss --- docs/assets/css/style.scss | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/assets/css/style.scss diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss new file mode 100644 index 00000000..5742f930 --- /dev/null +++ b/docs/assets/css/style.scss @@ -0,0 +1,4 @@ +--- +--- + +@import "{{ site.theme }}"; From 346aa506d1562210e72335f5d067b2dc5d9c86a6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:53:13 -0400 Subject: [PATCH 325/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index ce352575..a423f9ae 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -24,7 +24,7 @@ collections: permalink: /:path/ # Theme -remote_theme: pages-themes/minimal@v0.2.0 +theme: jekyll-theme-gcweb #Plugins plugins: From 69f7204b40580e94740aa979e8bd241e81e4abcf Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 16:10:42 -0400 Subject: [PATCH 326/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index a423f9ae..ce352575 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -24,7 +24,7 @@ collections: permalink: /:path/ # Theme -theme: jekyll-theme-gcweb +remote_theme: pages-themes/minimal@v0.2.0 #Plugins plugins: From feb4c00cb764d008373f5076c7877f23805e535d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 16:16:20 -0400 Subject: [PATCH 327/440] Update home.md --- docs/_includes/home.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/docs/_includes/home.md b/docs/_includes/home.md index fe0ca5b4..71dd9cd6 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -3,14 +3,3 @@ Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. - -### Overview - -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. - -The documentation includes what you need to know about: - - [Getting started](/getting-started/) - - [Authentication](/authentication/) - - [Making requests](/making-requests/) - - [Monitoring](/monitoring/) - - [Getting support](/getting-support/) From 83dfc36323ef67456e1c43643bc1e5244825fd08 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 16:18:31 -0400 Subject: [PATCH 328/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index d24b8a26..c4b86a95 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -6,6 +6,10 @@ permalink: "/getting-started/" trans_url: "/pour-commencer/" --- +### Overview + +The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. + ### What you will need - A **[GC Forms staging account](https://forms-staging.cdssandbox.xyz/)** (used for temporary testing only) - A form set to deliver responses via “Download” in Settings From 844aa80845e2c78687465c4133e2f12467e31fa3 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 28 Oct 2024 16:18:52 -0400 Subject: [PATCH 329/440] Update authentication.md --- docs/_pages/en/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 051b1296..49de5dda 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -15,7 +15,7 @@ https://api.forms-staging.cdssandbox.xyz/ **Production:** Coming soon (not yet available for real live forms) ``` -[https://api.forms-staging.cdssandbox.xyz/](https://api.forms-formulaires.alpha.canada.ca/) +https://api.forms-formulaires.alpha.canada.ca/ ``` _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From c9b5acd5821d3e1cb67e05d0140d9216bacb684e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:49:04 -0400 Subject: [PATCH 330/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 187510e1..2d08933f 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -7,7 +7,7 @@ en: contribute: "Contribute to the project" repo: "Repository" language: "Français" - homepage-slug: "/home/" + homepage-slug: "/home" site-name: "GC Forms — Data retrieval API" fr: homepage-tag-line: "Version 1: Pilote limité" @@ -18,5 +18,5 @@ fr: contribute: "Contribuer au projet" repo: "Référentiel" language: "English" - homepage-slug: "/accueil/" + homepage-slug: "/accueil" site-name: "API pour la récupération de données — Formulaires GC" From 5f39138b04fd76ba406084659e00139163b83392 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:57:34 -0400 Subject: [PATCH 331/440] Update authentification.md --- docs/_pages/fr/authentification.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/fr/authentification.md b/docs/_pages/fr/authentification.md index 36fc15f8..a25892aa 100644 --- a/docs/_pages/fr/authentification.md +++ b/docs/_pages/fr/authentification.md @@ -6,3 +6,4 @@ permalink: "/authentification/" trans_url: "/authentication/" --- +_la version française sera publiée d’ici peu_ From eac76931602f124fc61d43fb4abbaab5c1787422 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:57:52 -0400 Subject: [PATCH 332/440] Update faire-des-requetes.md --- docs/_pages/fr/faire-des-requetes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/fr/faire-des-requetes.md b/docs/_pages/fr/faire-des-requetes.md index ecfab3bc..0cae3442 100644 --- a/docs/_pages/fr/faire-des-requetes.md +++ b/docs/_pages/fr/faire-des-requetes.md @@ -6,3 +6,4 @@ permalink: "/faire-des-requetes/" trans_url: "/making-requests/" --- +_la version française sera publiée d’ici peu_ From fc46d116ad3129a6364f9de2b8430a23f80ec03e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:58:02 -0400 Subject: [PATCH 333/440] Update obtenir-du-soutien.md --- docs/_pages/fr/obtenir-du-soutien.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/fr/obtenir-du-soutien.md b/docs/_pages/fr/obtenir-du-soutien.md index 709b3e23..1680a019 100644 --- a/docs/_pages/fr/obtenir-du-soutien.md +++ b/docs/_pages/fr/obtenir-du-soutien.md @@ -5,3 +5,5 @@ lang: fr permalink: "/obtenir-du-soutien/" trans_url: "/getting-support/" --- + +_la version française sera publiée d’ici peu_ From 8ae42ed14ed2dcea5810f3c420fa4d718aad283b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:58:18 -0400 Subject: [PATCH 334/440] Update pour-commencer.md --- docs/_pages/fr/pour-commencer.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 229aea90..6fe6e388 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -6,3 +6,4 @@ permalink: "/pour-commencer/" trans_url: "/getting-started/" --- +_la version française sera publiée d’ici peu_ From eb8607541d3a030446c1b60367b437c9d2af63cc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:58:41 -0400 Subject: [PATCH 335/440] Update surveiller.md --- docs/_pages/fr/surveiller.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index 18a6b81b..b49f025e 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -5,3 +5,5 @@ lang: fr permalink: "/surveiller/" trans_url: "/monitoring/" --- + +_la version française sera publiée d’ici peu_ From ff252ee9c5d89bb63803cace89e17b1e6265c260 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:16:50 -0400 Subject: [PATCH 336/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 2d08933f..187510e1 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -7,7 +7,7 @@ en: contribute: "Contribute to the project" repo: "Repository" language: "Français" - homepage-slug: "/home" + homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: homepage-tag-line: "Version 1: Pilote limité" @@ -18,5 +18,5 @@ fr: contribute: "Contribuer au projet" repo: "Référentiel" language: "English" - homepage-slug: "/accueil" + homepage-slug: "/accueil/" site-name: "API pour la récupération de données — Formulaires GC" From 349efc2fe8a3daddf402289abcbb3f85c134b31a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 09:28:16 -0400 Subject: [PATCH 337/440] Update accueil.md --- docs/_includes/accueil.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index c7855beb..727031d5 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1,3 +1 @@ -### Bienvenue - _la version française sera publiée d'ici peu_ From aed5753a3ce10d9c5ded974826ba878bb5c202f2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 09:36:53 -0400 Subject: [PATCH 338/440] Update authentication.md --- docs/_pages/en/authentication.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 49de5dda..81c86c41 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -8,12 +8,6 @@ trans_url: "/authentification/" ### Base URL -**Staging** Currently available for prototyping purposes (temporarily) -``` -https://api.forms-staging.cdssandbox.xyz/ -``` - -**Production:** Coming soon (not yet available for real live forms) ``` https://api.forms-formulaires.alpha.canada.ca/ ``` @@ -24,13 +18,13 @@ _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon We The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. -Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. +Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. **This access token is valid for 30 minutes. ** The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. ### Integration examples -Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test the integration. +Once you’ve created a form, you can submit mock form submissions to simulate an active form and be able to test generating an access token. Use these examples as a reference to generate access tokens in your preferred programming language: - [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) From b0ea2c4f91b266e4a73e45cb6d7e46fa9cd8ca79 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 09:46:22 -0400 Subject: [PATCH 339/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index c4b86a95..8e5ab3bf 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -8,28 +8,19 @@ trans_url: "/pour-commencer/" ### Overview -The purpose of the GC Forms API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Our hope is that this will eventually alleviate the level of effort associated with the retrieval of data and the tedious confirmation flows for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. +The purpose of this API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Eventually, this should alleviate the effort associated for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. ### What you will need - - A **[GC Forms staging account](https://forms-staging.cdssandbox.xyz/)** (used for temporary testing only) - - A form set to deliver responses via “Download” in Settings + - A **[GC Forms account](https://articles.alpha.canada.ca/forms-formulaires/)** + - A draft form (Unclassified or Protected A) set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - - An API key **(generated by you in Settings > API Access)** - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API + - _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead._ + - An API key **(JSON file provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email)** + - In the support request, in "Tell us more" include the form ID and the email address of the developer who will set up the API integration -> [!NOTE] -> **No infrastructure development capabilities available?** -> This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead. +_> **No infrastructure development capabilities available?** +> This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead._ -### Getting an API key - -**To create an API key for this initial integration testing:** - 1. Sign in to [GC Forms staging](https://forms-staging.cdssandbox.xyz/) (used for temporary testing only). - 2. Create a draft form. - 3. Go to “Settings” in the side navigation and then “API Access” in the tab menu. - 4. Click “Generate Key”. - 5. Download JSON file that includes the private API key. - -> [!IMPORTANT] -> You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +**> **Important** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** From 2fca03335d655c376407ee909837ff6cf27de5e5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 09:55:08 -0400 Subject: [PATCH 340/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index dabd7b5b..92a357a3 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -39,6 +39,8 @@ We’ve developed some examples that you can reference or run the program for, t - [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) - [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) +Work with your development team to test out a draft form and ensure the API integration is receiving responses, able to decrypt, check the hash, and confrim the responses or report a problem. Once that process is complete, you are ready to publish your form with this data delivery method. + ### Retrieving **new** form submissions ##### HTTP request From c17325079d46335878da1ca1603e8c019e49b0d9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 09:59:51 -0400 Subject: [PATCH 341/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 87d3d54f..2b3b8790 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -19,6 +19,9 @@ These are common errors that apply globally and are the same for every URL path. | <code>404</code> | <code>Not found</code> | Invalid request URL. | | <code>500</code> | <code>Internal server error</code> | Internal error while serving request. | +## Reporting errors and feedback + +We expect there may be some additional features needed to get the data to target systems successfully. If you encounter an error, please submit a [technical support ticket](https://forms-formulaires.alpha.canada.ca/en/support) and we'll work with you to resolve the issue. Don't hesitate to include any feedback on the implementation so far — what works and what doesn't. Your feedback helps shape the product directly by informing our decisions on what issues are most important. ### Refreshing API keys @@ -27,5 +30,5 @@ Refreshing an API key may become necessary if a key is compromised. Keys can be ### Requesting a rate limit increase -We’ll soon be implementing API throttling and token bucket rate limits to manage high API traffic and maintain the system’s stability. This will help avoid overloading situations where too many requests are processed simultaneously. We anticipate the API limits will be tied to different use cases or types of usage and will try to determine appropriate limits for API requests per minute. +We’ll soon be implementing API throttling and token bucket rate limits to manage high API traffic and maintain the system’s stability. This will help avoid overloading situations where too many requests are processed simultaneously. We anticipate the API call limits will be tied to different use cases or types of usage and will try to determine appropriate limits for API requests per minute. From 1ab828afefcf3cad5c0b2ffb5baaaa28247bfe4c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:00:56 -0400 Subject: [PATCH 342/440] Update getting-support.md --- docs/_pages/en/getting-support.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-support.md b/docs/_pages/en/getting-support.md index 8dfb9c2f..283e5098 100644 --- a/docs/_pages/en/getting-support.md +++ b/docs/_pages/en/getting-support.md @@ -7,6 +7,6 @@ trans_url: "/obtenir-du-soutien/" --- We’re open to all questions and welcome any feedback you might have to help us improve. -You can email our team directly with any questions or needs for technical support. +You can get in touch with our team directly with any questions or needs for technical support, by filling out the [Support form](https://forms-formulaires.alpha.canada.ca/en/support). -Please include your name, email address, the form ID, response IDs (if relevant), and a description of the problem. +Please include your name, email address, the form ID, response IDs (if relevant), and a description of the problem. We'll do our best to be in touch within 2 business days. From b7183fd32d618ee6ddc688743ba3b65f1f86d4c4 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:03:15 -0400 Subject: [PATCH 343/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 8e5ab3bf..b608bd2a 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -16,11 +16,8 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API - - _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead._ + > _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead._ - An API key **(JSON file provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email)** - - In the support request, in "Tell us more" include the form ID and the email address of the developer who will set up the API integration + > In request include your information, the form ID, and the email address of the developer who will set up the API integration -_> **No infrastructure development capabilities available?** -> This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead._ - -**> **Important** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** +> **Important** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From d30376f3f0f19e8188c6d97b04efcc3393be263b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:03:45 -0400 Subject: [PATCH 344/440] Update authentication.md --- docs/_pages/en/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 81c86c41..e3d471b9 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -8,9 +8,9 @@ trans_url: "/authentification/" ### Base URL -``` +<code> https://api.forms-formulaires.alpha.canada.ca/ -``` +</code> _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From af68bfacc7c04a3e8938ce8819d8a8bb3279ef8a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:03:56 -0400 Subject: [PATCH 345/440] Update authentication.md --- docs/_pages/en/authentication.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index e3d471b9..743de051 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -12,6 +12,7 @@ trans_url: "/authentification/" https://api.forms-formulaires.alpha.canada.ca/ </code> + _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ ### How authentication works From 12dac6fef841a95440e405c72d0a413c58b95d69 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:15:49 -0400 Subject: [PATCH 346/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index b608bd2a..aa770bf7 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -15,9 +15,8 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - A draft form (Unclassified or Protected A) set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API - > _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. Consider choosing an alternative [no-code delivery option](https://articles.alpha.canada.ca/forms-formulaires/getting-form-responses/) to get responses by email or download them from GC Forms instead._ - - An API key **(JSON file provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email)** - > In request include your information, the form ID, and the email address of the developer who will set up the API integration + - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. + - An API key **(JSON file provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email)**. In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. -> **Important** You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +**IMPORTANT** +You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 5f791bdcec0f9266ba67a8f2e956b80e70ca72ab Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:16:34 -0400 Subject: [PATCH 347/440] Update authentication.md --- docs/_pages/en/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 743de051..aa8ded67 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -37,8 +37,8 @@ Use these examples as a reference to generate access tokens in your preferred pr Use this header for each API request to verify it’s you: -``` +<code> curl \ --request GET "$FORMS_URL" \ --header "Authorization: Bearer $ACCESS_TOKEN" -``` +</code> From 4b734a9c9cf70691f85bcfe40166de7f63ffaaaa Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:20:10 -0400 Subject: [PATCH 348/440] Update authentication.md --- docs/_pages/en/authentication.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index aa8ded67..a7e912c8 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -38,7 +38,7 @@ Use these examples as a reference to generate access tokens in your preferred pr Use this header for each API request to verify it’s you: <code> -curl \ - --request GET "$FORMS_URL" \ - --header "Authorization: Bearer $ACCESS_TOKEN" +<br> curl \ +<br> --request GET "$FORMS_URL" \ +<br> --header "Authorization: Bearer $ACCESS_TOKEN" </code> From 907a2260572388476f597788c290744d41013c8f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:20:40 -0400 Subject: [PATCH 349/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index aa770bf7..11a4d961 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -18,5 +18,5 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. - An API key **(JSON file provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email)**. In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. -**IMPORTANT** +### IMPORTANT You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. From 10aaa9cea9d91f456f95082fea8f56c1c04cbd9e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:20:55 -0400 Subject: [PATCH 350/440] Update authentication.md --- docs/_pages/en/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index a7e912c8..58c6650b 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -13,7 +13,7 @@ https://api.forms-formulaires.alpha.canada.ca/ </code> -_Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ +> _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ ### How authentication works From fac488c15b34348461fca04a5b679fc4ee454b05 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:21:20 -0400 Subject: [PATCH 351/440] Update authentication.md --- docs/_pages/en/authentication.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 58c6650b..b67bb99c 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -36,7 +36,6 @@ Use these examples as a reference to generate access tokens in your preferred pr ### Authorization header Use this header for each API request to verify it’s you: - <code> <br> curl \ <br> --request GET "$FORMS_URL" \ From c639d69e304bd27f569ca76de35cd135dbd571e6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:22:05 -0400 Subject: [PATCH 352/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 2b3b8790..b9e81dba 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -9,7 +9,7 @@ trans_url: "/monitoring/" ### Common errors These are common errors that apply globally and are the same for every URL path. -</br> +<br> | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | @@ -26,7 +26,7 @@ We expect there may be some additional features needed to get the data to target ### Refreshing API keys Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. -</br> +<br> ### Requesting a rate limit increase From 5480e151814d4a761a0e59080f78e902d0020c0c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:23:40 -0400 Subject: [PATCH 353/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 92a357a3..4a3e36f5 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -47,11 +47,11 @@ Work with your development team to test out a draft form and ensure the API inte This URL path returns a list of submissions that includes the 100 oldest form submissions marked with a “New” status: -``` +<code> GET /forms/{formID}/submission/new -``` +</code> -_Note: The status of these form submissions will not change to “Downloaded”._ +> _Note: The status of these form submissions will not change to “Downloaded”._ ##### Response status @@ -91,11 +91,11 @@ _Note: The status of these form submissions will not change to “Downloaded”. This URL path returns one form submission per request based on the respective submission name: -``` +<code> GET /forms/{formID}/submission/{submissionName} -``` +</code> -_Note: Retrieval is only possible for 1 submission, with 1 download per request. The status of these form submissions will not change to “Downloaded”. To change the status of the form submissions, make a request to confirm form submissions once they are properly received._ +> _Note: Retrieval is only possible for 1 submission, with 1 download per request. The status of these form submissions will not change to “Downloaded”. To change the status of the form submissions, make a request to confirm form submissions once they are properly received._ ##### Response status @@ -142,11 +142,11 @@ The confirmation step helps ensure the form submissions are exploitable and rend This URL path confirms form submissions were successfully retrieved from the system, thus removing them: -``` +<code> PUT /forms/{formID}/submission/{submissionName}/confirm/{confirmationCode} -``` +</code> -_Note: Confirmation is only possible for one submission at a time, with one confirmation code per request. The status of that submission will be modified from “New” to “Confirmed”. This is similar to the two-step “Download” and “Sign off on removal” process in the application._ +> _Note: Confirmation is only possible for one submission at a time, with one confirmation code per request. The status of that submission will be modified from “New” to “Confirmed”. This is similar to the two-step “Download” and “Sign off on removal” process in the application._ ##### Response status @@ -200,25 +200,25 @@ _Note: Confirmation is only possible for one submission at a time, with one conf This URL path identifies a form submission as having a problem if something unexpected occurs: -``` +<code> POST /forms/{formID}/submission/{submissionName}/problem -``` +</code> -_Note: Reporting a problem is only possible for one submission at a time. You can report a problem with form submissions that are “New” or “Confirmed” as long as they have not been removed from the system. This will change the status to “Problem” and block the submission’s removal from the system until the problem is resolved._ +> _Note: Reporting a problem is only possible for one submission at a time. You can report a problem with form submissions that are “New” or “Confirmed” as long as they have not been removed from the system. This will change the status to “Problem” and block the submission’s removal from the system until the problem is resolved._ ##### Example payload for reporting a problem To report a problem include a message formatted like the one below in the HTTP POST request body: -``` +<code> { “contactEmail”: “something@somethingelse.com”, “description”: “Here is my problem”, “preferredLanguage”: “en” (either “en” or “fr”) } -``` +</code> -_Note: This will be directed to our support team._ +> _Note: This will be directed to our support team._ ##### Response status From 3a060980c1db18836beee516fe6b66435ae6ab42 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:25:26 -0400 Subject: [PATCH 354/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 11a4d961..3c36a8af 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -11,12 +11,13 @@ trans_url: "/pour-commencer/" The purpose of this API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Eventually, this should alleviate the effort associated for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. ### What you will need - - A **[GC Forms account](https://articles.alpha.canada.ca/forms-formulaires/)** - - A draft form (Unclassified or Protected A) set to deliver responses via “Download” in Settings + - A [GC Forms account](https://articles.alpha.canada.ca/forms-formulaires/) + - A draft form (Unclassified or Protected A) + - The form set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. - - An API key **(JSON file provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email)**. In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. + - An API key (provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email for this first version). In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. ### IMPORTANT -You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration. +**You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** From 2b933015e7c3ea9c51961fa7f720db19fdd72d91 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:26:22 -0400 Subject: [PATCH 355/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index b9e81dba..702efe55 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -9,7 +9,6 @@ trans_url: "/monitoring/" ### Common errors These are common errors that apply globally and are the same for every URL path. -<br> | Status code | Example message | Meaning or how to fix | | :---------------- | :------ | :---- | @@ -19,14 +18,12 @@ These are common errors that apply globally and are the same for every URL path. | <code>404</code> | <code>Not found</code> | Invalid request URL. | | <code>500</code> | <code>Internal server error</code> | Internal error while serving request. | -## Reporting errors and feedback - +**Reporting errors and feedback** We expect there may be some additional features needed to get the data to target systems successfully. If you encounter an error, please submit a [technical support ticket](https://forms-formulaires.alpha.canada.ca/en/support) and we'll work with you to resolve the issue. Don't hesitate to include any feedback on the implementation so far — what works and what doesn't. Your feedback helps shape the product directly by informing our decisions on what issues are most important. ### Refreshing API keys Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. -<br> ### Requesting a rate limit increase From c95a4d711715acc5e8fe2a2f127741b4bf43fd1d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:27:15 -0400 Subject: [PATCH 356/440] Update authentication.md --- docs/_pages/en/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index b67bb99c..d24ff247 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -19,7 +19,7 @@ https://api.forms-formulaires.alpha.canada.ca/ The GC Forms API leverages an OAuth 2.0 Signed JSON Web Token ([JWT](https://jwt.io/)) flow with a self-hosted Identity provider (IDP), Zitadel, to establish machine-to-machine authentication in a safe and secure way for the API endpoint. -Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. **This access token is valid for 30 minutes. ** +Authentication is done through an opaque token, with basic authorization handled via the user profile and the requested form ID. The OAuth server provides a short-lived access token that can be used to make API requests by verifying the client’s JWT that has been signed with a private key and includes their client ID. This access token is valid for 30 minutes. The API requires authentication with a Government of Canada email, an associated **formID**, a JWT signed with a **Private key** and verified using a **Public key** with the IDP. This token contains a claim to specify the form ID from which it is associated. From 2616b9ef74af03ea86f2ad6961c649ea67bc4599 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:27:39 -0400 Subject: [PATCH 357/440] Update authentication.md --- docs/_pages/en/authentication.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index d24ff247..5832e33c 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -37,6 +37,7 @@ Use these examples as a reference to generate access tokens in your preferred pr Use this header for each API request to verify it’s you: <code> +<br> <br> curl \ <br> --request GET "$FORMS_URL" \ <br> --header "Authorization: Bearer $ACCESS_TOKEN" From 77aadab1ca81a53216ae21633e2753d6dde515af Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:28:20 -0400 Subject: [PATCH 358/440] Update authentication.md --- docs/_pages/en/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 5832e33c..f84d77f7 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -8,9 +8,9 @@ trans_url: "/authentification/" ### Base URL -<code> +<code><strong> https://api.forms-formulaires.alpha.canada.ca/ -</code> +</strong></code> > _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From 915bf80a3bd5df4e1d3b7fbf29173bd533d2312c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:28:59 -0400 Subject: [PATCH 359/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 3c36a8af..c2666ff7 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -19,5 +19,5 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. - An API key (provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email for this first version). In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. -### IMPORTANT -**You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** +> #### IMPORTANT +> **You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** From c7f5be53177253310c671f7e7e8d10d39a994ca9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:29:31 -0400 Subject: [PATCH 360/440] Update authentication.md --- docs/_pages/en/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index f84d77f7..5832e33c 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -8,9 +8,9 @@ trans_url: "/authentification/" ### Base URL -<code><strong> +<code> https://api.forms-formulaires.alpha.canada.ca/ -</strong></code> +</code> > _Note: You may need to use a cloud provider such as Microsoft Azure or Amazon Web Services (AWS), to be able to access the endpoint._ From a8b7c3daa6dd7edc9c3618c25f04ca4afe5d80c5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:30:28 -0400 Subject: [PATCH 361/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index c2666ff7..6ef82302 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -18,6 +18,4 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - A target system where you plan on receiving form submission data - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. - An API key (provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email for this first version). In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. - -> #### IMPORTANT -> **You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** +> **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** From f10118f3341de195d2d455800dae71d66518c157 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 1 Nov 2024 10:30:47 -0400 Subject: [PATCH 362/440] Update getting-support.md --- docs/_pages/en/getting-support.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/_pages/en/getting-support.md b/docs/_pages/en/getting-support.md index 283e5098..86e4c431 100644 --- a/docs/_pages/en/getting-support.md +++ b/docs/_pages/en/getting-support.md @@ -5,8 +5,6 @@ lang: en permalink: "/getting-support/" trans_url: "/obtenir-du-soutien/" --- -We’re open to all questions and welcome any feedback you might have to help us improve. +We’re open to all questions and welcome any feedback you might have to help us improve. You can get in touch with our team directly with any questions or needs for technical support, by filling out the [Support form](https://forms-formulaires.alpha.canada.ca/en/support). -You can get in touch with our team directly with any questions or needs for technical support, by filling out the [Support form](https://forms-formulaires.alpha.canada.ca/en/support). - -Please include your name, email address, the form ID, response IDs (if relevant), and a description of the problem. We'll do our best to be in touch within 2 business days. +> Please include your name, email address, the form ID, response IDs (if relevant), and a description of the problem. We'll do our best to be in touch within 2 business days. From 082373427ac38df120dde59f0cc379c3863b9186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Janin?= <clement.janin@cds-snc.ca> Date: Wed, 6 Nov 2024 12:31:56 -0500 Subject: [PATCH 363/440] biome should ignore docs folder --- biome.json | 3 ++- docs/DS_Store | Bin 6148 -> 0 bytes 2 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 docs/DS_Store diff --git a/biome.json b/biome.json index 0ea08ab8..df3e6552 100644 --- a/biome.json +++ b/biome.json @@ -5,7 +5,8 @@ "**/build/**", "node_modules/**", "package.json", - "pnpm-lock.yaml" + "pnpm-lock.yaml", + "docs/**" ] }, "organizeImports": { diff --git a/docs/DS_Store b/docs/DS_Store deleted file mode 100644 index 3643f5acc9acbc3e756d941b9028959e0b95b8c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%WA_w3>>vdNa-cV9`_ge2TMr5pdZjCaR>#|1l-(x>u-1T2*j8`Pdzk}(T-QE z*=6ToSpZ~tYMy}wfH_?e-#Uy<*VRXM7m*23Y>#!*ZQIS^&~o}aQ|=URXt2f?2K)zx zKk$hyTAY}$LwDX@_nvY2NY?&xLC>8r*zwtM!vRBCX{kUekP4&%slcr(5Jh_ac<Vys z{ZoNdV5ES49|~Qu2KJ8j>EK{308xMA&G>G;1hHs<SOa@UMrh(xqEjVW3~@T+CGu)u z@91<$G#?TtOLQn=r*r>e>5%G}V=9me3>CQd=|b!O3;jy}KP2TW6-WjCl>#zZy{?wL zQq<Pb<+Roo`aAt>%(Zk5R*H#MiaF6z{B)65^quQ9uy-^%<3=aukAUiumJ0lZ0zZN* BCY}HQ From d613d5f99fd6ca8919d36fff1f1834ba0ce81269 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:04:07 -0500 Subject: [PATCH 364/440] Update accueil.md FR for home --- docs/_includes/accueil.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index 727031d5..9287d06e 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1 +1,5 @@ -_la version française sera publiée d'ici peu_ +### Bienvenue + +Voici la première version de la documentation technique de l'interface de programmation d'applications (API) de Formulaires GC. Cette version de la documentation est destinée aux développeur·euse·s qui souhaitent utiliser l’API de Formulaires GC pour récupérer programmatiquement des données de soumission de formulaire dans l’application Web ou le système d’arrière-guichet de leur ministère. + +Notre objectif est de vous orienter dans le processus de configuration d’une intégration initiale et de récupération sécurisée des soumissions de formulaires, tout en apprenant de votre expérience (par exemple, ce qui vous pose problème ou ce qui vous fait douter), puis d’intégrer vos rétroactions dans nos futures versions. Nous sommes reconnaissant·e·s de votre patience en cette période de perfectionnement. Votre rétroaction ouverte et honnête nous aidera à améliorer Formulaires GC et à bâtir l’avenir de ce produit. From 9f45194801708122405b9b34a2a346b1519ad26e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:16:29 -0500 Subject: [PATCH 365/440] Update pour-commencer.md --- docs/_pages/fr/pour-commencer.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 6fe6e388..1af3e0d6 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -6,4 +6,17 @@ permalink: "/pour-commencer/" trans_url: "/getting-started/" --- -_la version française sera publiée d’ici peu_ +### Survol + +Le but de cette API est de récupérer des soumissions de formulaires de manière sécurisée et fiable directement depuis le point de terminaison d’API. Cela devrait alléger la charge de travail associée aux volumes élevés de soumissions de formulaires. Ainsi, plutôt que de télécharger et d’approuver manuellement la suppression des réponses pour confirmer leur récupération à partir de la base de données, l’API automatisera le flux de travail avec des systèmes communiquant entre eux et échangeant des données. + +### Ce dont vous aurez besoin + - Un [compte Formulaires GC](https://articles.alpha.canada.ca/forms-formulaires/fr) + - A draft form (Unclassified or Protected A) + - Un formulaire configuré pour envoyer des réponses par l'intermédiaire de l'option « Télécharger » dans les paramètres. + - Quelques réponses « fictives » soumises dans le formulaire + - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire + - Des ressources de développement d’infrastructure capables de créer des demandes HTTP et d’utiliser Azure ou AWS pour atteindre l’API +_Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous. + - Une clé API (fournie sur demande par notre [équipe de Soutien](https://forms-formulaires.alpha.canada.ca/fr/support) par courriel crypté pour cette première version) Dans la demande, indiquez votre nom et votre adresse électronique, l'identifiant du formulaire et l'adresse courriel de développeur·euse qui mettra en place l'intégration API. +> **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** From 70e00b8ece541939f0377891d444d60d036c8a53 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:17:23 -0500 Subject: [PATCH 366/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 6ef82302..2c709caa 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -16,6 +16,6 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - The form set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet. + - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet._ - An API key (provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email for this first version). In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. > **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** From c24fb5dba3adb7f29074cf5f8e25683b4840331d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:17:46 -0500 Subject: [PATCH 367/440] Update pour-commencer.md --- docs/_pages/fr/pour-commencer.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 1af3e0d6..18860f04 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -16,7 +16,6 @@ Le but de cette API est de récupérer des soumissions de formulaires de manièr - Un formulaire configuré pour envoyer des réponses par l'intermédiaire de l'option « Télécharger » dans les paramètres. - Quelques réponses « fictives » soumises dans le formulaire - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire - - Des ressources de développement d’infrastructure capables de créer des demandes HTTP et d’utiliser Azure ou AWS pour atteindre l’API -_Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous. + - Des ressources de développement d’infrastructure capables de créer des demandes HTTP et d’utiliser Azure ou AWS pour atteindre l’API. _Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous._ - Une clé API (fournie sur demande par notre [équipe de Soutien](https://forms-formulaires.alpha.canada.ca/fr/support) par courriel crypté pour cette première version) Dans la demande, indiquez votre nom et votre adresse électronique, l'identifiant du formulaire et l'adresse courriel de développeur·euse qui mettra en place l'intégration API. > **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** From 2779a03481b0f11538af2a2be8f00373e98a6290 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:21:22 -0500 Subject: [PATCH 368/440] Update authentification.md FR docs for auth --- docs/_pages/fr/authentification.md | 37 +++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/_pages/fr/authentification.md b/docs/_pages/fr/authentification.md index a25892aa..f89371be 100644 --- a/docs/_pages/fr/authentification.md +++ b/docs/_pages/fr/authentification.md @@ -6,4 +6,39 @@ permalink: "/authentification/" trans_url: "/authentication/" --- -_la version française sera publiée d’ici peu_ +### URL de base + +<code> +https://api.forms-formulaires.alpha.canada.ca/ +</code> + + +> _Remarque : il se pourrait que vous deviez utiliser un fournisseur d’infonuagique comme Microsoft Azure ou Amazon Web Services (AWS) pour obtenir cet accès._ + +### Fonctionnement de l'authentification + +L’API de Formulaires GC exploite un flux de jeton Web JSON OAuth 2.0 signé ([JWT](https://jwt.io/)) avec un fournisseur d’identité autohébergé (IDP), Zitadel, pour établir l’authentification entre des machines de manière sécurisée pour le point de terminaison d’API. + +L’authentification se fait par l’intermédiaire d’un jeton opaque et l’autorisation de base est gérée par le biais du profil utilisateur et de l’identifiant du formulaire demandé. Le serveur OAuth fournit un jeton d’accès de courte durée qui peut être utilisé pour faire des demandes API en vérifiant le JWT du client qui a été signé avec une clé privée et qui comprend son identifiant de client. Ce jeton d’accès est valable 30 minutes. + +L’API requiert une authentification à l’aide d’une adresse courriel du gouvernement du Canada, d’un **identifiant de formulaire** connexe et d’un JWT signé avec une **clé privée** et vérifié par l’intermédiaire d’une **clé publique** avec l’IDP. Ce jeton requiert l’identifiant de formulaire connexe. + +### Exemples d’intégration + +Une fois le formulaire créé, vous pouvez remplir des formulaires de manière fictive afin de simuler un formulaire actif et de tester l’intégration. + +Utilisez ces exemples comme référence pour générer des jetons d’accès dans le langage de programmation de votre choix : +- [.NET / C#](https://github.com/cds-snc/forms-api/blob/main/examples/dotnet/AccessTokenGenerator.cs) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/blob/main/examples/nodejs/accessTokenGenerator.ts) +- [Python](https://github.com/cds-snc/forms-api/blob/main/examples/python/access_token_generator.py) +- [Bash /Curl](https://github.com/cds-snc/forms-api/blob/main/examples/bash/get_access_token.sh) + +### En-tête d’autorisation + +Utilisez cet en-tête pour chaque demande d’API pour confirmer votre identité : +<code> +<br> +<br> curl \ +<br> --request GET "$FORMS_URL" \ +<br> --header "Authorization: Bearer $ACCESS_TOKEN" +</code> From 243b2255bb8ba0af0043d3bf34b2508da8e7584b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:21:58 -0500 Subject: [PATCH 369/440] Update faire-des-requetes.md Change title FR --- docs/_pages/fr/faire-des-requetes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/fr/faire-des-requetes.md b/docs/_pages/fr/faire-des-requetes.md index 0cae3442..7c5da575 100644 --- a/docs/_pages/fr/faire-des-requetes.md +++ b/docs/_pages/fr/faire-des-requetes.md @@ -1,9 +1,9 @@ --- layout: page -title: "Faire des requêtes" +title: "Effectuer des demandes" lang: fr -permalink: "/faire-des-requetes/" +permalink: "/effectuer-des-demandes/" trans_url: "/making-requests/" --- -_la version française sera publiée d’ici peu_ + From a6f781c28181659c71a1439ae8147472b8064530 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:22:24 -0500 Subject: [PATCH 370/440] Update menu.yml --- docs/_data/menu.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/menu.yml b/docs/_data/menu.yml index cb010077..02b10ebb 100644 --- a/docs/_data/menu.yml +++ b/docs/_data/menu.yml @@ -29,8 +29,8 @@ fr: name: "Authentification" url: "/authentification/" making-requests: - name: "Faire des requêtes" - url: "/faire-des-requetes/" + name: "Effectuer des demandes" + url: "/effectuer-des-demandes/" monitoring: name: "Surveiller" url: "/surveiller/" From 193d3c5db570d5cacf0fa50ca85b5f89bac1f293 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:23:29 -0500 Subject: [PATCH 371/440] Update translations.yml --- docs/_data/translations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 187510e1..873f03bc 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -14,7 +14,7 @@ fr: cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" - built-by: "Cette documentation s'adresse aux développeurs d'API qui récupèrent des soumissions de formulaire à partir de" + built-by: "Cette documentation s'adresse aux développeur·euse·s d'API qui récupèrent des soumissions de formulaire à partir de" contribute: "Contribuer au projet" repo: "Référentiel" language: "English" From ca76803daeb36d0858f67ab0c31141cc6a35dd46 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:41:12 -0500 Subject: [PATCH 372/440] Update and rename faire-des-requetes.md to effectuer-des-demandes.md FR for requests --- docs/_pages/fr/effectuer-des-demandes.md | 285 +++++++++++++++++++++++ docs/_pages/fr/faire-des-requetes.md | 9 - 2 files changed, 285 insertions(+), 9 deletions(-) create mode 100644 docs/_pages/fr/effectuer-des-demandes.md delete mode 100644 docs/_pages/fr/faire-des-requetes.md diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md new file mode 100644 index 00000000..f72cc613 --- /dev/null +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -0,0 +1,285 @@ +--- +layout: page +title: "Effectuer des demandes" +lang: fr +permalink: "/effectuer-des-demandes/" +trans_url: "/making-requests/" +childPages: + - Récupérer des nouvelles soumissions de formulaires + - Récupérer des soumissions de formulaires spécifiques + - Confirmer des soumissions de formulaires + - Signaler un problème avec les soumissions de formulaire + - Obtenir les questions du formulaire +--- + +L’API de Formulaires GC vous permet de récupérer des soumissions de formulaire sous forme de fichiers JSON. Vous pouvez obtenir jusqu’à 100 soumissions de formulaire par lot, et celles-ci sont accessibles jusqu’à 30 jours après la soumission, compte tenu de nos périodes actuelles de rétention des données. Les soumissions de formulaire sont chiffrées à l’aide d’une clé publique et peuvent être déchiffrées localement par vous. + + +### Paramètres de requête + +Les demandes d’API pour les données de soumission de Formulaires GC sont possibles à l’aide de paramètres de requête tels que : + - **{formID}** + L'identifiant de formulaire est une chaîne alphanumérique de 25 caractères trouvée à la fin de l’URL du formulaire ou au début du nom de fichier de la clé API. + Par exemple : ```clzvj8fzb00226o90r2b7l1gt```. + - **{SubmissionName}** + Le nom de la soumission est une chaîne alphanumérique de 11 caractères, y compris les tirets, parfois appelée identifiant de soumission dans l’application Formulaires GC. + Par exemple : ```e02-08-d732```. + - **{ConfirmationCode}** + Le code de confirmation est une chaîne alphanumérique de 36 caractères, y compris les tirets, parfois appelée code de réception dans l’application Formulaires GC. + Par exemple : ```620b203c-9836-4000-bf30-1c3bcc26b834```. + +### Exemples d'intégration + +Nous avons élaboré quelques exemples auxquels vous pouvez vous référer, ou pour lesquels vous pouvez exécuter le programme, et qui, nous l’espérons, faciliteront l’intégration. Voici les langages de programmation disponibles à l’heure actuelle : + +- [.NET / C#](https://github.com/cds-snc/forms-api/tree/main/examples/dotnet) +- [Node.JS / Typescript](https://github.com/cds-snc/forms-api/tree/main/examples/nodejs) +- [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) +- [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) + +Travaillez avec votre équipe de développement pour tester une ébauche de formulaire et vous assurer que l'intégration de l'API reçoit des réponses, qu'elle est capable de décrypter, de vérifier le hachage et de confirmer les réponses ou de signaler un problème. Une fois ce processus terminé, vous êtes prêt à publier votre formulaire avec cette méthode de livraison des données. + +### Récupérer des **nouvelles** soumissions de formulaires + +##### Demande HTTP + +Ce chemin d’URL renvoie une liste de soumissions qui comprend les 100 plus anciennes soumissions de formulaire ayant le statut « Nouveautés » : + +<code> +GET /forms/{formID}/submission/new +</code> + +> _Remarque : Le statut de ces soumissions de formulaire ne passera pas à « Téléchargé »._ + +##### Statut de la réponse + +<table> +<tr> + <td><b>Code du statut</b></td> <td><b>Exemple de message</b></td> <td><b>Signification / comment corriger</b></td> +</tr> +<tr> + <td><code>200</code></td> + <td> +<code>[ + { + "name": "05-09-09f4", + "createdAt": 1725553403512 + }, + { + "name": "05-09-9620", + "createdAt": 1725553404965 + }, + { + "name": "05-09-75dc", + "createdAt": 1725553404972 + } +]</code> + </td> + <td> + Liste des nouveaux noms de soumission récupérés avec succès. + </td> +</tr> +</table> + +### Récupérer des soumissions de formulaires **spécifiques** + +#### Obtenir la soumission du formulaire + +##### Demande HTTP + +Ce chemin d’URL renvoie une soumission de formulaire par demande en fonction du nom de soumission respectif : +<code> +GET /forms/{formID}/submission/{submissionName} +</code> + +> _Remarque : La récupération n’est possible que pour une soumission, avec un téléchargement par demande. Le statut de ces soumissions de formulaire ne passera pas à « Téléchargé ». Pour modifier le statut des soumissions de formulaires, faites une demande de confirmation des soumissions de formulaire une fois qu’elles ont été correctement reçues._ + +##### Statut de la réponse + +<table> +<tr> + <td><b>Code du statut</b></td> <td><b>Exemple de message</b></td> <td><b>Signification / comment corriger</b></td> +</tr> +<tr> + <td><code>200</code></td> + <td> +<code>{ + "encryptedResponses": "IOWyM7bpo+wVCXpFkU13JeO0HcxFHTIwLX17ol+jUWdvhicIG+fJj", + "encryptedKey": "IOWyM7bpELZg4kPBOPVe7jeHcxFHTIwLX17ol+jUw6KGictIG+fJj", + "encryptedNonce": "GVyPXC/6UTteJ3uf8d6doBNbppHzKjEXDxwE2DXQbD30/vIxlsY", + "encryptedAuthTag": "VRMt87LgedVo+wVCXpFkU13JeO0guDGHb48XVpvWdvhs3bv/D" +}</code> + </td> + <td> + Les données chiffrées de la soumission ont été récupérées avec succès. + </td> +</tr> +<tr> + <td><code>404</code></td> + <td> +<code>{ + "error": "Form submission does not exist" +}</code> + </td> + <td> + Le renseignement “Form ID” (identifiant du formulaire) ou “Submission name” (nom de soumission) est incorrect ou introuvable. + </td> +</tr> +</table> + +#### Déchiffrement des données + +La sécurité du système est primordiale et elle est renforcée par le chiffrement des soumissions de formulaires. Bien que le chiffrement soit effectué en HTTPS, nous avons ajouté une autre couche de sécurité avec le chiffrement AES-256-GSM. Lorsque vous recevrez une soumission de formulaire, elle sera chiffrée et elle comprendra une clé chiffrée, un nonce chiffré et un élément AuthTag chiffré. Ceux-ci peuvent être déchiffrés par l’intermédiaire d’une clé privée. + +### **Confirmer** des soumissions de formulaires + +L’étape de confirmation permet de s’assurer que les formulaires soumis sont exploitables et s’affichent comme prévu avant qu’ils ne soient définitivement retirés de la base de données du système Formulaires GC. + +##### Demande HTTP + +Le chemin d’URL confirme que les soumissions de formulaires ont bien été récupérées à partir du système et les supprime : + +<code> +PUT /forms/{formID}/submission/{submissionName}/confirm/{confirmationCode} +</code> + +> _Remarque : La confirmation n’est possible que pour une soumission à la fois, avec un code de confirmation par requête. Le statut de cette soumission passera de « Nouveautés » à « Confirmations ». Il s’agit d’un processus similaire au processus en deux étapes de téléchargement et d’approbation de la suppression dans l’application._ + +##### Statut de la réponse + +<table> +<tr> + <td><b>Code du statut</b></td> <td><b>Exemple de message</b></td> <td><b>Signification / comment corriger</b></td> +</tr> +<tr> + <td><code>200</code></td> + <td><code>OK</code></td> + <td> La soumission a bien été confirmée.</td> +</tr> +<tr> + <td><code>200</code></td> + <td> +<code>{ + "info": "Form submission is already confirmed" +}</code> + </td> + <td> + La soumission a déjà été confirmée. + </td> +</tr> +<tr> + <td><code>400</code></td> + <td> +<code>{ + "error": "Confirmation code is incorrect" +}</code> + </td> + <td> + Le code de confirmation fourni ne correspond pas à la soumission à confirmer. + </td> +</tr> +<tr> + <td><code>404</code></td> + <td> +<code>{ + "error": "Form submission does not exist" +}</code> + </td> + <td> + Le renseignement “form ID” ou “Submission name” est incorrect ou introuvable. + </td> +</tr> +</table> + +### Signaler un problème avec la soumission de formulaire + +##### Demande HTTP + +Ce chemin d’URL identifie une soumission de formulaire comme ayant un problème si un évènement inattendu se produit : + +<code> +POST /forms/{formID}/submission/{submissionName}/problem +</code> + +> _Remarque : Le signalement d’un problème n’est possible que pour une seule soumission à la fois. Vous pouvez signaler un problème avec les soumissions de formulaires portant le statut « Nouveautés » ou « Confirmations » tant qu’elles n’ont pas été supprimées du système. Cela changera le statut en « Problème » et bloquera la suppression de la soumission du système jusqu’à ce que le problème soit résolu._ + +##### Exemple de charge utile pour le signalement d’un problème + +Pour signaler un problème, incluez un message au format similaire à celui ci-dessous dans le corps de la requête HTTP POST : + +<code> +{ + “contactEmail”: “nom@ministere.gc.ca”, + “description”: “Voici mon problème”, + “preferredLanguage”: “fr” (soit “en” ou “fr”) +} +</code> + +> _Remarque : Ce message sera transmis à notre équipe de soutien._ + + +##### Statut de la réponse + +<table> +<tr> + <td><b>Code du statut</b></td> <td><b>Exemple de message</b></td> <td><b>Signification / comment corriger</b></td> +</tr> +<tr> + <td><code>200</code></td> + <td><code>OK</code></td> + <td> La soumission a bien été signalée comme ayant un problème.</td> +</tr> +<tr> + <td><code>200</code></td> + <td> +<code> +{ + "info": "Form submission is already confirmed" +} +</code> + </td> + <td> + La soumission a déjà été signalée comme ayant un problème. + </td> +</tr> +<tr> + <td><code>400</code></td> + <td> +<code>{ + "error": "Invalid payload", + "details": [ + { + "type": "field", + "value": "test@cds-snc", + "msg": "Invalid value", + "path": "contactEmail", + "location": "body" + }, + { + "type": "field", + "value": "", + "msg": "Must be at least 10 characters long", + "path": "description", + "location": "body" + } + ] +}</code> + </td> + <td> + Détails sur la raison pour laquelle la charge utile fournie n’est pas valide. + </td> +</tr> +<tr> + <td><code>400</code></td> + <td> +<code>{ + "error": "Form submission does not exist" +}</code> + </td> + <td> + Le renseignement “Form ID” ou “Submission name” est incorrect ou n’a pas pu être trouvé. + </td> +</tr> +</table> + + diff --git a/docs/_pages/fr/faire-des-requetes.md b/docs/_pages/fr/faire-des-requetes.md deleted file mode 100644 index 7c5da575..00000000 --- a/docs/_pages/fr/faire-des-requetes.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: page -title: "Effectuer des demandes" -lang: fr -permalink: "/effectuer-des-demandes/" -trans_url: "/making-requests/" ---- - - From 3cc511f459cc879e51e8a9f26b8f768a9f2cb8a7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:45:43 -0500 Subject: [PATCH 373/440] Update surveiller.md --- docs/_pages/fr/surveiller.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index b49f025e..9e966d85 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -6,4 +6,27 @@ permalink: "/surveiller/" trans_url: "/monitoring/" --- -_la version française sera publiée d’ici peu_ +### Erreurs courantes + +Il s’agit d’erreurs courantes qui s’appliquent généralement et sont les mêmes pour tous les chemins d’URL. + +| Code du statut | Exemple de message | Signification / comment corriger | +| :---------------- | :------ | :---- | +| <code>401</code> | <code>Unauthorized</code> | Aucun jeton d’accès n’a été fourni. | +| <code>401</code> | <code>Access token has expired</code> | Le jeton d’accès a expiré. | +| <code>403</code> | <code>Forbidden</code> | Le jeton d’accès n’a pas pu être validé OU le renseignement “Form ID” est inaccessible avec le jeton d’accès fourni. | +| <code>404</code> | <code>Not found</code> | L’URL de requête n’est pas valide. | +| <code>500</code> | <code>Internal server error</code> | Une erreur interne est survenue durant le traitement de la requête. | + +**Signalement d'erreurs et retours d'information** +Nous nous attendons à ce que des fonctionnalités supplémentaires soient nécessaires pour que les données soient transmises avec succès aux systèmes cibles. Si vous rencontrez une erreur, veuillez soumettre un [ticket de support technique] (https://forms-formulaires.alpha.canada.ca/en/support) et nous travaillerons avec vous pour résoudre le problème. N'hésitez pas à nous faire part de vos commentaires sur la mise en œuvre jusqu'à présent - ce qui fonctionne et ce qui ne fonctionne pas. Vos commentaires contribuent à façonner directement le produit en éclairant nos décisions sur les questions les plus importantes. + +### Actualisation des clés API + +L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être révoquées et régénérées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. + +### Demande d’augmentation de limite + +Nous allons bientôt appliquer des limitations en matière de requêtes API et de compartiments de jetons pour gérer le trafic élevé et maintenir la stabilité du système. Cela permettra d’éviter les situations de surcharge où trop de demandes sont traitées simultanément. Nous prévoyons que les limites d’API seront liées à différents cas d’utilisation ou types d’utilisation et nous essaierons de déterminer les limites appropriées par minute pour les demandes d’API. + + From dcd1a748770904c678a3f93ceec2d899253b6de1 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:48:25 -0500 Subject: [PATCH 374/440] Update obtenir-du-soutien.md --- docs/_pages/fr/obtenir-du-soutien.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/_pages/fr/obtenir-du-soutien.md b/docs/_pages/fr/obtenir-du-soutien.md index 1680a019..efdd0af0 100644 --- a/docs/_pages/fr/obtenir-du-soutien.md +++ b/docs/_pages/fr/obtenir-du-soutien.md @@ -6,4 +6,6 @@ permalink: "/obtenir-du-soutien/" trans_url: "/getting-support/" --- -_la version française sera publiée d’ici peu_ +Nous sommes ouvert·e·s à toutes les questions et accueillons tous les commentaires que vous pourriez avoir pour nous aider à nous améliorer. Vous pouvez contacter directement en cas de question ou si vous avez besoin de soutien technique, en remplissant le [formulaire de soutien](https://forms-formulaires.alpha.canada.ca/fr/support). + +> Veuillez inclure votre nom, votre adresse courriel, l’identifiant du formulaire, les identifiants de soumissions (si cela est pertinent) et une description du problème. From 7888a856fd49faf18202ba43b6eca9ab168183e0 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:53:51 -0500 Subject: [PATCH 375/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 82 +++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 4a3e36f5..c7969aad 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -285,3 +285,85 @@ To report a problem include a message formatted like the one below in the HTTP P </tr> </table> +### Getting form questions + +##### HTTP request + +This URL path retrieves the questions that were asked in JSON format so they can more easily be associated with the answer data retrieved: + +<code> +GET /forms/{formID}/template +</code> + +> _Note: The questions will be in a data structure that is JSON format when retrieved. This helps if you’ll be transforming the data and need to match the answers to the questions._ + +##### Response status + +<table> +<tr> + <td><b>Status code</b></td> <td><b>Example message</b></td> <td><b>Meaning or how to fix</b></td> +</tr> +<tr> + <td><code>200</code></td> + <td> +<code> + { + "layout": [ + 1 + ], + "titleEn": "Test Form", + "titleFr": "Formulaire de test", + "elements": [ + { + "id": 1, + "type": "textField", + "properties": { + "choices": [ + { + "en": "", + "fr": "" + } + ], + "titleEn": "This is a question", + "titleFr": "C'est une question", + "validation": { + "required": false + }, + "subElements": [], + "descriptionEn": "", + "descriptionFr": "", + "placeholderEn": "", + "placeholderFr": "" + } + } + ], + "confirmation": { + "descriptionEn": "Confirmed", + "descriptionFr": "Confirmation", + "referrerUrlEn": "", + "referrerUrlFr": "" + }, + "introduction": { + "descriptionEn": "Description", + "descriptionFr": "Description" + }, + "privacyPolicy": { + "descriptionEn": "Private", + "descriptionFr": "Privé" + } +} +</code></code></td> + <td> Form template data successfully retrieved.</td> +</tr> +<tr> + <td><code>404</code></td> + <td> +<code> +{ + "error": "Form template does not exist" +} +</code> + </td> + <td> + “Form ID” is incorrect or could not be found. + </td> From a972f4e2e2d8b77de1438421b88de08b2d65a8bc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:55:08 -0500 Subject: [PATCH 376/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index c7969aad..cc9f36ab 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -3,7 +3,7 @@ layout: page title: "Making requests" lang: en permalink: "/making-requests/" -trans_url: "/faire-des-requetes/" +trans_url: "/effectuer-des-demandes/" childPages: - Retrieving new form submissions - Retrieving specific form submissions From 3938debb0d2b851671646540b3a11fd5049776a4 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 09:16:37 -0500 Subject: [PATCH 377/440] Update pour-commencer.md --- docs/_pages/fr/pour-commencer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 18860f04..07c77c4b 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -12,7 +12,7 @@ Le but de cette API est de récupérer des soumissions de formulaires de manièr ### Ce dont vous aurez besoin - Un [compte Formulaires GC](https://articles.alpha.canada.ca/forms-formulaires/fr) - - A draft form (Unclassified or Protected A) + - Un formulaire d'ébauche (Non-classifié ou Protégé A) - Un formulaire configuré pour envoyer des réponses par l'intermédiaire de l'option « Télécharger » dans les paramètres. - Quelques réponses « fictives » soumises dans le formulaire - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire From 2545644d1f89874ea8cea5036825e037bfdf189a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 09:17:55 -0500 Subject: [PATCH 378/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index cc9f36ab..001814d7 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -352,7 +352,7 @@ GET /forms/{formID}/template "descriptionFr": "Privé" } } -</code></code></td> +</code></td> <td> Form template data successfully retrieved.</td> </tr> <tr> From 582d5a728ef2c49c225670ed1569edcfcc51f34c Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 09:20:00 -0500 Subject: [PATCH 379/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 84 ++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index f72cc613..b93b1301 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -282,4 +282,88 @@ Pour signaler un problème, incluez un message au format similaire à celui ci-d </tr> </table> +### Obtenir les questions du formulaire + +##### Demande HTTP + +Ce chemin d’URL récupère les questions qui ont été posées au format JSON afin qu’elles puissent être plus facilement associées aux réponses récupérées : + +<code> +GET /forms/{formID}/template +</code> + +> _Remarque : Les questions seront dans une structure de données au format JSON lorsqu’elles seront récupérées. Cela est utile si vous transformez les données et que vous devez faire correspondre les réponses aux questions._ + +##### Statut de la réponse + +<table> +<tr> + <td><b>Code du statut</b></td> <td><b>Exemple de message</b></td> <td><b>Signification / comment corriger</b></td> +</tr> +<tr> + <td><code>200</code></td> + <td> +<code> + { + "layout": [ + 1 + ], + "titleEn": "Test Form", + "titleFr": "Formulaire de test", + "elements": [ + { + "id": 1, + "type": "textField", + "properties": { + "choices": [ + { + "en": "", + "fr": "" + } + ], + "titleEn": "This is a question", + "titleFr": "C'est une question", + "validation": { + "required": false + }, + "subElements": [], + "descriptionEn": "", + "descriptionFr": "", + "placeholderEn": "", + "placeholderFr": "" + } + } + ], + "confirmation": { + "descriptionEn": "Confirmed", + "descriptionFr": "Confirmation", + "referrerUrlEn": "", + "referrerUrlFr": "" + }, + "introduction": { + "descriptionEn": "Description", + "descriptionFr": "Description" + }, + "privacyPolicy": { + "descriptionEn": "Private", + "descriptionFr": "Privé" + } +} +</code></td> + <td>Les données relatives au modèle de formulaire ont bien été récupérées. + +</td> +</tr> +<tr> + <td><code>404</code></td> + <td> +<code> +{ + "error": "Form template does not exist" +} +</code> + </td> + <td> + Le renseignement “Form ID” est incorrect ou n’a pas pu être trouvé. + </td> From d11e7ae97d2126b7b3194ba26107e78335fcca42 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:11:29 -0500 Subject: [PATCH 380/440] Update _config.yml --- docs/_config.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index ce352575..42c966a6 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -6,7 +6,7 @@ description: >- # Base configuration exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] -markdown: kramdown, GFM +markdown: GFM lsi: false safe: true source: [your repo's top level directory] @@ -14,9 +14,6 @@ incremental: false highlighter: rouge gist: noscript: false -kramdown: - math_engine: mathjax - syntax_highlighter: rouge collections: pages: From 80123ff5b9eba6cf458787492963f9ca961b1ee2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:14:50 -0500 Subject: [PATCH 381/440] Update _config.yml --- docs/_config.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 42c966a6..d0998e73 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -6,7 +6,7 @@ description: >- # Base configuration exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"] -markdown: GFM +markdown: kramdown, GFM lsi: false safe: true source: [your repo's top level directory] @@ -14,7 +14,9 @@ incremental: false highlighter: rouge gist: noscript: false - +kramdown: + math_engine: mathjax + syntax_highlighter: rouge collections: pages: output: true From a33b4c4e8e21b8858ca0eb6b8682a1971af1aefb Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:31:52 -0500 Subject: [PATCH 382/440] Update Gemfile.lock Attempt to update vulnerable dependencies --- docs/Gemfile.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 88be30c7..9708c306 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -5,7 +5,7 @@ GEM i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) + tzinfo (~> 1.2.5) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) coffee-script (2.4.1) @@ -13,7 +13,7 @@ GEM execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.17.11) + commonmarker (0.23.10) ruby-enum (~> 0.5) concurrent-ruby (1.1.5) dnsruby (1.61.2) @@ -67,7 +67,7 @@ GEM jekyll-theme-time-machine (= 0.1.1) jekyll-titles-from-headings (= 0.5.1) jemoji (= 0.10.1) - kramdown (= 1.17.0) + kramdown (= 2.3.0) liquid (= 4.0.0) listen (= 3.1.5) mercenary (~> 0.3) @@ -76,7 +76,7 @@ GEM rouge (= 2.2.1) terminal-table (~> 1.4) github-pages-health-check (1.8.1) - addressable (~> 2.3) + addressable (~> 2.8) dnsruby (~> 1.60) octokit (~> 4.0) public_suffix (~> 2.0) @@ -87,8 +87,8 @@ GEM http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.7.3) - addressable (~> 2.4) + jekyll (3.8.4) + addressable (~> 2.8) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 0.7) @@ -106,10 +106,10 @@ GEM coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) jekyll-commonmark (1.2.0) - commonmarker (~> 0.14) + commonmarker (~> 0.23.10) jekyll (>= 3.0, < 4.0) jekyll-commonmark-ghpages (0.1.5) - commonmarker (~> 0.17.6) + commonmarker (~> 0.23.10) jekyll-commonmark (~> 1) rouge (~> 2) jekyll-default-layout (0.1.4) @@ -203,9 +203,9 @@ GEM jekyll (~> 3.5) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.11.3) + minitest (5.11.3)x multipart-post (2.0.0) - nokogiri (1.10.9) + nokogiri (1.12.5) mini_portile2 (~> 2.4.0) octokit (4.11.0) sawyer (~> 0.8.0, >= 0.5.3) From 03f1eda96dcdcb43676bddd3d924c6e621bf5725 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:45:00 -0500 Subject: [PATCH 383/440] Update Gemfile.lock Fixing vulnerabilities based on outdated versions --- docs/Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 9708c306..a493f6f6 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,11 +1,11 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.10) + activesupport (7.0.4.1) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.2.5) + tzinfo (~> 1.2.10) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) coffee-script (2.4.1) @@ -17,7 +17,7 @@ GEM ruby-enum (~> 0.5) concurrent-ruby (1.1.5) dnsruby (1.61.2) - addressable (~> 2.5) + addressable (~> 2.8.0) em-websocket (0.5.1) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) @@ -31,7 +31,7 @@ GEM forwardable-extended (2.6.0) gemoji (3.0.0) github-pages (191) - activesupport (= 4.2.10) + activesupport (= 7.0.4.1) github-pages-health-check (= 1.8.1) jekyll (= 3.7.3) jekyll-avatar (= 0.6.0) @@ -76,14 +76,14 @@ GEM rouge (= 2.2.1) terminal-table (~> 1.4) github-pages-health-check (1.8.1) - addressable (~> 2.8) + addressable (~> 2.8.0) dnsruby (~> 1.60) octokit (~> 4.0) public_suffix (~> 2.0) typhoeus (~> 1.3) html-pipeline (2.8.4) - activesupport (>= 2) - nokogiri (>= 1.4) + activesupport (~>7.0.4.1) + nokogiri (~>1.13.2) http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) @@ -94,7 +94,7 @@ GEM i18n (~> 0.7) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (~> 2.3.0) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) @@ -191,7 +191,7 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (~> 3.0) - kramdown (1.17.0) + kramdown (2.3.0) liquid (4.0.0) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) @@ -205,7 +205,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3)x multipart-post (2.0.0) - nokogiri (1.12.5) + nokogiri (1.13.2) mini_portile2 (~> 2.4.0) octokit (4.11.0) sawyer (~> 0.8.0, >= 0.5.3) @@ -227,14 +227,14 @@ GEM rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) + addressable (~> 2.8.0) faraday (~> 0.8, < 1.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) typhoeus (1.3.0) ethon (>= 0.9.0) - tzinfo (1.2.5) + tzinfo (1.2.10) thread_safe (~> 0.1) unicode-display_width (1.4.0) From bf19d431a08eeb8aeee2530e3f95975a1f146ad2 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:55:58 -0500 Subject: [PATCH 384/440] Update Gemfile.lock --- docs/Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index a493f6f6..2c3ccef9 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -72,7 +72,7 @@ GEM listen (= 3.1.5) mercenary (~> 0.3) minima (= 2.5.0) - nokogiri (>= 1.8.2, < 2.0) + nokogiri (= 1.16.5) rouge (= 2.2.1) terminal-table (~> 1.4) github-pages-health-check (1.8.1) @@ -82,13 +82,13 @@ GEM public_suffix (~> 2.0) typhoeus (~> 1.3) html-pipeline (2.8.4) - activesupport (~>7.0.4.1) - nokogiri (~>1.13.2) + activesupport (= 7.0.4.1) + nokogiri (= 1.16.5) http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) jekyll (3.8.4) - addressable (~> 2.8) + addressable (~> 2.8.0) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 0.7) @@ -205,7 +205,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3)x multipart-post (2.0.0) - nokogiri (1.13.2) + nokogiri (1.16.5) mini_portile2 (~> 2.4.0) octokit (4.11.0) sawyer (~> 0.8.0, >= 0.5.3) From 15a1f8f834b85f1ba3db9fc1c4f235f973509fbd Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:13:36 -0500 Subject: [PATCH 385/440] Update Gemfile.lock --- docs/Gemfile.lock | 284 +++++++++++++++++++++++----------------------- 1 file changed, 142 insertions(+), 142 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 2c3ccef9..1d62b1a6 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,93 +1,93 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.0.4.1) + activesupport (~>7.0.4.1) i18n (~> 0.7) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) + thread_safe (~> 0.3.4) tzinfo (~> 1.2.10) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) - coffee-script (2.4.1) + addressable (~> 2.5.2) + public_suffix (~> 4.0) + coffee-script (~> 2.4.1) coffee-script-source execjs - coffee-script-source (1.11.1) - colorator (1.1.0) - commonmarker (0.23.10) + coffee-script-source (~> 1.11.1) + colorator (~> 1.1.0) + commonmarker (~> 0.23.10) ruby-enum (~> 0.5) - concurrent-ruby (1.1.5) - dnsruby (1.61.2) + concurrent-ruby (~> 1.1.5) + dnsruby (~> 1.61.2) addressable (~> 2.8.0) - em-websocket (0.5.1) + em-websocket (~> 0.5.1) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) - ethon (0.11.0) - ffi (>= 1.3.0) - eventmachine (1.2.7) - execjs (2.7.0) - faraday (0.15.2) - multipart-post (>= 1.2, < 3) - ffi (1.11.1) - forwardable-extended (2.6.0) - gemoji (3.0.0) + ethon (~> 0.11.0) + ffi (~> 1.3.0) + eventmachine (~> 1.2.7) + execjs (~> 2.7.0) + faraday (~> 0.15.2) + multipart-post (~> 3) + ffi (~> 1.11.1) + forwardable-extended (~> 2.6.0) + gemoji (~> 3.0.0) github-pages (191) - activesupport (= 7.0.4.1) - github-pages-health-check (= 1.8.1) - jekyll (= 3.7.3) - jekyll-avatar (= 0.6.0) - jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.5) - jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.10.0) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.9.4) - jekyll-mentions (= 1.4.1) - jekyll-optional-front-matter (= 0.3.0) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.2.0) - jekyll-redirect-from (= 0.14.0) - jekyll-relative-links (= 0.5.3) - jekyll-remote-theme (= 0.3.1) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.5.0) - jekyll-sitemap (= 1.2.0) - jekyll-swiss (= 0.4.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.1) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.3) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) - jekyll-titles-from-headings (= 0.5.1) - jemoji (= 0.10.1) - kramdown (= 2.3.0) - liquid (= 4.0.0) - listen (= 3.1.5) + activesupport (~> 7.0.4.1) + github-pages-health-check (~> 1.8.1) + jekyll (~> 3.7.3) + jekyll-avatar (~> 0.6.0) + jekyll-coffeescript (~> 1.1.1) + jekyll-commonmark-ghpages (~> 0.1.5) + jekyll-default-layout (~> 0.1.4) + jekyll-feed (~> 0.10.0) + jekyll-gist (~> 1.5.0) + jekyll-github-metadata (~> 2.9.4) + jekyll-mentions (~> 1.4.1) + jekyll-optional-front-matter (~> 0.3.0) + jekyll-paginate (~> 1.1.0) + jekyll-readme-index (~> 0.2.0) + jekyll-redirect-from (~> 0.14.0) + jekyll-relative-links (~> 0.5.3) + jekyll-remote-theme (~> 0.3.1) + jekyll-sass-converter (~> 1.5.2) + jekyll-seo-tag (~> 2.5.0) + jekyll-sitemap (~> 1.2.0) + jekyll-swiss (~> 0.4.0) + jekyll-theme-architect (~> 0.1.1) + jekyll-theme-cayman (~> 0.1.1) + jekyll-theme-dinky (~> 0.1.1) + jekyll-theme-hacker (~> 0.1.1) + jekyll-theme-leap-day (~> 0.1.1) + jekyll-theme-merlot (~> 0.1.1) + jekyll-theme-midnight (~> 0.1.1) + jekyll-theme-minimal (~> 0.1.1) + jekyll-theme-modernist (~> 0.1.1) + jekyll-theme-primer (~> 0.5.3) + jekyll-theme-slate (~> 0.1.1) + jekyll-theme-tactile (~> 0.1.1) + jekyll-theme-time-machine (~> 0.1.1) + jekyll-titles-from-headings (~> 0.5.1) + jemoji (~> 0.10.1) + kramdown (~> 2.3.0) + liquid (~> 4.0.0) + listen (~> 3.1.5) mercenary (~> 0.3) - minima (= 2.5.0) - nokogiri (= 1.16.5) - rouge (= 2.2.1) + minima (~> 2.5.0) + nokogiri (~> 1.16.5) + rouge (~> 2.2.1) terminal-table (~> 1.4) - github-pages-health-check (1.8.1) + github-pages-health-check (~> 1.8.1) addressable (~> 2.8.0) dnsruby (~> 1.60) octokit (~> 4.0) public_suffix (~> 2.0) typhoeus (~> 1.3) - html-pipeline (2.8.4) - activesupport (= 7.0.4.1) - nokogiri (= 1.16.5) - http_parser.rb (0.6.0) - i18n (0.9.5) + html-pipeline (~> 2.8.4) + activesupport (~> 7.0.4.1) + nokogiri (~> 1.16.5) + http_parser.rb (~> 0.6.0) + i18n (~> 0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.8.4) + jekyll (~> 3.8.4) addressable (~> 2.8.0) colorator (~> 1.0) em-websocket (~> 0.5) @@ -98,145 +98,145 @@ GEM liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (>= 1.7, < 4) + rouge (~> 4.0) safe_yaml (~> 1.0) - jekyll-avatar (0.6.0) + jekyll-avatar (~> 0.6.0) jekyll (~> 3.0) - jekyll-coffeescript (1.1.1) + jekyll-coffeescript (~> 1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.2.0) + jekyll-commonmark (~> 1.2.0) commonmarker (~> 0.23.10) - jekyll (>= 3.0, < 4.0) - jekyll-commonmark-ghpages (0.1.5) + jekyll (~> 4.0) + jekyll-commonmark-ghpages (~> 0.1.5) commonmarker (~> 0.23.10) jekyll-commonmark (~> 1) rouge (~> 2) - jekyll-default-layout (0.1.4) + jekyll-default-layout (~> 0.1.4) jekyll (~> 3.0) - jekyll-feed (0.10.0) + jekyll-feed (~> 0.10.0) jekyll (~> 3.3) - jekyll-gist (1.5.0) + jekyll-gist (~> 1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.9.4) + jekyll-github-metadata (~> 2.9.4) jekyll (~> 3.1) - octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.4.1) + octokit (~> 4.4.0) + jekyll-mentions (~> 1.4.1) html-pipeline (~> 2.3) jekyll (~> 3.0) - jekyll-optional-front-matter (0.3.0) + jekyll-optional-front-matter (~> 0.3.0) jekyll (~> 3.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.2.0) + jekyll-paginate (~> 1.1.0) + jekyll-readme-index (~> 0.2.0) jekyll (~> 3.0) - jekyll-redirect-from (0.14.0) + jekyll-redirect-from (~> 0.14.0) jekyll (~> 3.3) - jekyll-relative-links (0.5.3) + jekyll-relative-links (~> 0.5.3) jekyll (~> 3.3) - jekyll-remote-theme (0.3.1) + jekyll-remote-theme (~> 0.3.1) jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) - jekyll-sass-converter (1.5.2) + rubyzip (~> 3.0) + jekyll-sass-converter (~> 1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.5.0) + jekyll-seo-tag (~> 2.5.0) jekyll (~> 3.3) - jekyll-sitemap (1.2.0) + jekyll-sitemap (~> 1.2.0) jekyll (~> 3.3) - jekyll-swiss (0.4.0) - jekyll-theme-architect (0.1.1) + jekyll-swiss (~> 0.4.0) + jekyll-theme-architect (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) + jekyll-theme-cayman (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) + jekyll-theme-dinky (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.1) + jekyll-theme-hacker (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) + jekyll-theme-leap-day (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) + jekyll-theme-merlot (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) + jekyll-theme-midnight (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) + jekyll-theme-minimal (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) + jekyll-theme-modernist (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.3) + jekyll-theme-primer (~> 0.5.3) jekyll (~> 3.5) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) jekyll-theme-slate (0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) + jekyll-theme-tactile (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) + jekyll-theme-time-machine (~> 0.1.1) jekyll (~> 3.5) jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.1) + jekyll-titles-from-headings (~> 0.5.1) jekyll (~> 3.3) - jekyll-watch (2.2.1) + jekyll-watch (~> 2.2.1) listen (~> 3.0) - jemoji (0.10.1) + jemoji (~> 0.10.1) gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (~> 3.0) - kramdown (2.3.0) - liquid (4.0.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) + kramdown (~> 2.3.0) + liquid (~> 4.0.0) + listen (~> 3.1.5) + rb-fsevent (~> 0.9.4) + rb-inotify (~> 0.9.7) ruby_dep (~> 1.2) - mercenary (0.3.6) - mini_portile2 (2.4.0) - minima (2.5.0) + mercenary (~> 0.3.6) + mini_portile2 (~> 2.4.0) + minima (~> 2.5.0) jekyll (~> 3.5) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.11.3)x - multipart-post (2.0.0) - nokogiri (1.16.5) + minitest (~> 5.11.3) + multipart-post (~> 2.0.0) + nokogiri (~> 1.16.5) mini_portile2 (~> 2.4.0) - octokit (4.11.0) - sawyer (~> 0.8.0, >= 0.5.3) - pathutil (0.16.2) + octokit (~> 4.11.0) + sawyer (~> 0.8.0) + pathutil (~> 0.16.2) forwardable-extended (~> 2.6) - public_suffix (2.0.5) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + public_suffix (~> 2.0.5) + rb-fsevent (~> 0.10.3) + rb-inotify (~> 0.10.0) ffi (~> 1.0) - rouge (2.2.1) - ruby-enum (0.7.2) + rouge (~> 2.2.1) + ruby-enum (~> 0.7.2) i18n - ruby_dep (1.5.0) - rubyzip (2.0.0) - safe_yaml (1.0.5) - sass (3.7.4) + ruby_dep (~> 1.5.0) + rubyzip (~> 2.0.0) + safe_yaml (~> 1.0.5) + sass (~> 3.7.4) sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.1) + sass-listen (~> 4.0.0) + rb-fsevent (~> 0.9.4) + rb-inotify (~> 0.9.7) + sawyer (~> 0.8.1) addressable (~> 2.8.0) - faraday (~> 0.8, < 1.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (1.3.0) - ethon (>= 0.9.0) - tzinfo (1.2.10) + faraday (~> 1.0) + terminal-table (~> 1.8.0) + unicode-display_width (~> 1.1.1) + thread_safe (~> 0.3.6) + typhoeus (~> 1.3.0) + ethon (~> 0.9.0) + tzinfo (~> 1.2.10) thread_safe (~> 0.1) - unicode-display_width (1.4.0) + unicode-display_width (~> 1.4.0) PLATFORMS ruby From d94a7fa939e9eb54d36fd63ef7e18997963de6ca Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:21:48 -0500 Subject: [PATCH 386/440] Update Gemfile.lock --- docs/Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 1d62b1a6..d0a832c6 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -31,7 +31,7 @@ GEM forwardable-extended (~> 2.6.0) gemoji (~> 3.0.0) github-pages (191) - activesupport (~> 7.0.4.1) + activesupport (~> 7.0.4.3) github-pages-health-check (~> 1.8.1) jekyll (~> 3.7.3) jekyll-avatar (~> 0.6.0) @@ -82,7 +82,7 @@ GEM public_suffix (~> 2.0) typhoeus (~> 1.3) html-pipeline (~> 2.8.4) - activesupport (~> 7.0.4.1) + activesupport (~> 7.0.4.3) nokogiri (~> 1.16.5) http_parser.rb (~> 0.6.0) i18n (~> 0.9.5) From c57873363cbaf56084052db571cc3fc95362e1af Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:25:30 -0500 Subject: [PATCH 387/440] Update Gemfile.lock --- docs/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index d0a832c6..7582c3d3 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (~>7.0.4.1) + activesupport (~>7.0.4.3) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3.4) From 3193019a5fc1adf1548515b668e4e109e66d8998 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:32:35 -0500 Subject: [PATCH 388/440] Update Gemfile.lock --- docs/Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 7582c3d3..0c0338f4 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (~>7.0.4.3) + activesupport (~>7.0.7.1) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3.4) @@ -31,7 +31,7 @@ GEM forwardable-extended (~> 2.6.0) gemoji (~> 3.0.0) github-pages (191) - activesupport (~> 7.0.4.3) + activesupport (~> 7.0.7.1) github-pages-health-check (~> 1.8.1) jekyll (~> 3.7.3) jekyll-avatar (~> 0.6.0) @@ -82,7 +82,7 @@ GEM public_suffix (~> 2.0) typhoeus (~> 1.3) html-pipeline (~> 2.8.4) - activesupport (~> 7.0.4.3) + activesupport (~> 7.0.7.1) nokogiri (~> 1.16.5) http_parser.rb (~> 0.6.0) i18n (~> 0.9.5) From 2fd8b24e9a55a7e0c704acadbc03b6ebc937047e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Tue, 19 Nov 2024 10:11:40 -0500 Subject: [PATCH 389/440] Add throttling / rate limiting to v1 docs (#105) * Update monitoring.md Add API rate limit / throttling content * Update monitoring.md * Update monitoring.md * Update surveiller.md * Update monitoring.md * Update monitoring.md * Update monitoring.md * Update surveiller.md * Update surveiller.md * Update monitoring.md * Update surveiller.md * Update monitoring.md * Update monitoring.md * Update surveiller.md * Update monitoring.md * Update surveiller.md * Update surveiller.md * Update monitoring.md * Update docs/_pages/en/monitoring.md * Update docs/_pages/fr/surveiller.md * Update docs/_pages/en/monitoring.md --- docs/_pages/en/monitoring.md | 20 +++++++++++++++----- docs/_pages/fr/surveiller.md | 21 ++++++++++++++++----- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 702efe55..fb6fdbf7 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -16,16 +16,26 @@ These are common errors that apply globally and are the same for every URL path. | <code>401</code> | <code>Access token has expired</code> | Access token has expired | | <code>403</code> | <code>Forbidden</code> | Could not validate access token OR "Form ID" in request is not allowed to be accessed with the provided access token. | | <code>404</code> | <code>Not found</code> | Invalid request URL. | +| <code>429</code> | <code>Too many requests</code> | Refer to API rate limit for the limit number. | | <code>500</code> | <code>Internal server error</code> | Internal error while serving request. | -**Reporting errors and feedback** +#### Reporting errors and feedback We expect there may be some additional features needed to get the data to target systems successfully. If you encounter an error, please submit a [technical support ticket](https://forms-formulaires.alpha.canada.ca/en/support) and we'll work with you to resolve the issue. Don't hesitate to include any feedback on the implementation so far — what works and what doesn't. Your feedback helps shape the product directly by informing our decisions on what issues are most important. -### Refreshing API keys +### API rate limit -Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. +API throttling allows us to manage high API traffic and helps maintain the system’s stability. This helps avoid overloading situations where too many requests are processed simultaneously. + +The limit for API requests from one form is **500 requests per minute**. Should you happen to exceed the limit, you will get a <code>RateLimitError</code>. You may either wait and try again, or request a higher limit for your form. If you require an API request rate increase, [contact Support](https://forms-formulaires.alpha.canada.ca/en/support). -### Requesting a rate limit increase +You can see additional information in the headers included as part of the API response: +- <code>X-RateLimit-Limit</code>: the current limit of API requests for your form per 60 seconds +- <code>X-RateLimit-Remaining</code>: the number of remaining API requests within this 60 second interval +- <code>X-RateLimit-Reset</code>: the moment at which the limit will reset to the full limit amount +- <code>Retry-After</code>: the time in seconds to wait before sending another request to the API -We’ll soon be implementing API throttling and token bucket rate limits to manage high API traffic and maintain the system’s stability. This will help avoid overloading situations where too many requests are processed simultaneously. We anticipate the API call limits will be tied to different use cases or types of usage and will try to determine appropriate limits for API requests per minute. +In the future, we anticipate the API call limits may be tied to different use cases or types of usage and will try to determine appropriate limits for API requests per minute. +### Refreshing API keys + +Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index 9e966d85..32836f97 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -16,17 +16,28 @@ Il s’agit d’erreurs courantes qui s’appliquent généralement et sont les | <code>401</code> | <code>Access token has expired</code> | Le jeton d’accès a expiré. | | <code>403</code> | <code>Forbidden</code> | Le jeton d’accès n’a pas pu être validé OU le renseignement “Form ID” est inaccessible avec le jeton d’accès fourni. | | <code>404</code> | <code>Not found</code> | L’URL de requête n’est pas valide. | +| <code>429</code> | <code>Too many requests</code> | Reportez-vous à la limite du débit de l'API pour le nombre maximal. | | <code>500</code> | <code>Internal server error</code> | Une erreur interne est survenue durant le traitement de la requête. | -**Signalement d'erreurs et retours d'information** +#### Signalement d'erreurs et retours d'information Nous nous attendons à ce que des fonctionnalités supplémentaires soient nécessaires pour que les données soient transmises avec succès aux systèmes cibles. Si vous rencontrez une erreur, veuillez soumettre un [ticket de support technique] (https://forms-formulaires.alpha.canada.ca/en/support) et nous travaillerons avec vous pour résoudre le problème. N'hésitez pas à nous faire part de vos commentaires sur la mise en œuvre jusqu'à présent - ce qui fonctionne et ce qui ne fonctionne pas. Vos commentaires contribuent à façonner directement le produit en éclairant nos décisions sur les questions les plus importantes. -### Actualisation des clés API +### Limite du débit de l'API -L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être révoquées et régénérées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. +Les limitations en matière de requêtes API nous permet de gérer le trafic élevé et de maintenir la stabilité du système. Cela permettra d’éviter les situations de surcharge où trop de demandes sont traitées simultanément. + +La limite des demandes d'API à partir d'un formulaire est de **500 demandes par minute**. Si vous dépassez cette limite, vous obtiendrez une erreur <code>429 RateLimitError</code>. Vous pouvez soit attendre et réessayer, ou demander une limite plus élevée pour votre formulaire. Si vous avez besoin d'une augmentation du nombre de requêtes API, [contactez l'équipe de soutien](https://forms-formulaires.alpha.canada.ca/fr/support). + +Vous pouvez obtenir des informations supplémentaires dans les en-têtes inclus dans la réponse de l'API : +- <code>X-RateLimit-Limit</code> : la limite actuelle de demandes API pour votre formulaire par 60 secondes +- <code>X-RateLimit-Remaining</code> : le nombre de demandes d'API restantes dans cet intervalle de 60 secondes +- <code>X-RateLimit-Reset</code> : le moment où la limite sera réinitialisée au montant total de la limite +- <code>Retry-After</code> : le temps en secondes à attendre avant d'envoyer une autre demande à l'API -### Demande d’augmentation de limite +À l'avenir, nous prévoyons que les limites d’API seront liées à différents cas d’utilisation ou types d’utilisation et nous essaierons de déterminer les limites appropriées par minute pour les demandes d’API. -Nous allons bientôt appliquer des limitations en matière de requêtes API et de compartiments de jetons pour gérer le trafic élevé et maintenir la stabilité du système. Cela permettra d’éviter les situations de surcharge où trop de demandes sont traitées simultanément. Nous prévoyons que les limites d’API seront liées à différents cas d’utilisation ou types d’utilisation et nous essaierons de déterminer les limites appropriées par minute pour les demandes d’API. +### Actualisation des clés API + +L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être révoquées et régénérées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. From 5c35627f3889e5fde90cd0c3a08df330ff03e9da Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:41:58 -0500 Subject: [PATCH 390/440] Update main.css --- docs/assets/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 25c1a606..d01f11fe 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -54,7 +54,7 @@ strong { font-size: 1.625em; font-family: "Avenir Next", Arial, sans-serif; font-weight: normal; - color: #919395; + color: #1E293B; margin: 0; line-height: 1.2941176470588236; display: inline-block; From 306ac8b035f4803bc701fb390ac26117c260ec9d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:46:49 -0500 Subject: [PATCH 391/440] Update normalize.css --- docs/assets/css/normalize.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css index 25c1a606..d01f11fe 100644 --- a/docs/assets/css/normalize.css +++ b/docs/assets/css/normalize.css @@ -54,7 +54,7 @@ strong { font-size: 1.625em; font-family: "Avenir Next", Arial, sans-serif; font-weight: normal; - color: #919395; + color: #1E293B; margin: 0; line-height: 1.2941176470588236; display: inline-block; From 29a31c5df99a297acb90bc89de3f5a6b4ea22eef Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:23:25 -0500 Subject: [PATCH 392/440] Update syntax.css --- docs/assets/css/syntax.css | 42 +++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/assets/css/syntax.css b/docs/assets/css/syntax.css index 2774b764..73ca10f9 100644 --- a/docs/assets/css/syntax.css +++ b/docs/assets/css/syntax.css @@ -1,19 +1,19 @@ .highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .c { color: #64748B; font-style: italic } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { font-weight: bold } /* Keyword */ .highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .cm { color: #64748B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #64748B; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #64748B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #64748B; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: ##1E293B; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .gd .x { color: ##1E293B; background-color: #ffaaaa } /* Generic.Deleted.Specific */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight .gi { color: ##1E293B; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .gi .x { color: ##1E293B; background-color: #aaffaa } /* Generic.Inserted.Specific */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ @@ -24,7 +24,7 @@ .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ .highlight .kr { font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .m { color: #cec5f8ff } /* Literal.Number */ .highlight .s { color: #d14 } /* Literal.String */ .highlight .na { color: #008080 } /* Name.Attribute */ .highlight .nb { color: #0086B3 } /* Name.Builtin */ @@ -34,14 +34,14 @@ .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ .highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .nt { color: #cec5f8ff } /* Name.Tag */ +.highlight .nv { color: #cec5f8ff } /* Name.Variable */ .highlight .ow { font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .mf { color: #cec5f8ff } /* Literal.Number.Float */ +.highlight .mh { color: #cec5f8ff } /* Literal.Number.Hex */ +.highlight .mi { color: #cec5f8ff } /* Literal.Number.Integer */ +.highlight .mo { color: #cec5f8ff } /* Literal.Number.Oct */ .highlight .sb { color: #d14 } /* Literal.String.Backtick */ .highlight .sc { color: #d14 } /* Literal.String.Char */ .highlight .sd { color: #d14 } /* Literal.String.Doc */ @@ -53,8 +53,8 @@ .highlight .sr { color: #009926 } /* Literal.String.Regex */ .highlight .s1 { color: #d14 } /* Literal.String.Single */ .highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ +.highlight .bp { color: #64748B } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #cec5f8ff } /* Name.Variable.Class */ +.highlight .vg { color: #cec5f8ff } /* Name.Variable.Global */ +.highlight .vi { color: #cec5f8ff } /* Name.Variable.Instance */ +.highlight .il { color: #cec5f8ff } /* Literal.Number.Integer.Long */ From 4281056d5e9108e1b3b7e6191b43fe4a616061ac Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:30:57 -0500 Subject: [PATCH 393/440] Update normalize.css --- docs/assets/css/normalize.css | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css index d01f11fe..e8f19ab7 100644 --- a/docs/assets/css/normalize.css +++ b/docs/assets/css/normalize.css @@ -122,39 +122,39 @@ a { a, a:link, a:visited { - color: #0072ce; - border-bottom: 1px dotted #0072ce; + color: #9d8cf2ff; + border-bottom: 1px dotted #9d8cf2ff; text-decoration: none; } a:hover { border-bottom: 1px solid #7eb8dd; - color: #7eb8dd; + color: #9d8cf2ff; text-decoration: none; } a:active { border-bottom: 1px solid #002d72; - color: #002d72; + color: #4b4085ff; text-decoration: none; } a:focus { border-bottom: 1px solid #0072ce; - color: #0072ce; + color: #4b4085ff; outline: thin dotted; text-decoration: none; } a.title-link { - color: #75787B; + color: #1E293B; border-bottom: none; } a.title-link:hover, a.title-link:active, a.title-link:focus { - color: #7eb8dd; + color: #9d8cf2ff; border-bottom: none; } @@ -188,13 +188,13 @@ Navigation .sidebar-nav a:link, .sidebar-nav a:visited { border-bottom: none; - color: #75787b; + color: #1E293B; } .sidebar-nav li:hover, .sidebar-nav a:focus, .sidebar-nav li:active, .sidebar-nav .sidebar-nav-active { - color: #75787b; + color: #1E293B; border-left: 4px solid {{ site.brand_color }}; background-color: transparent; border-bottom: 1px solid #babbbd; @@ -339,7 +339,7 @@ Style */ .intro { - color: #75787B; + color: #1E293B; } li h4 { @@ -377,7 +377,7 @@ ul.posts { } .post-date { - color: #75787B; + color: #64748B; } /* @@ -484,7 +484,7 @@ Desktop Styles height: 4.0625em; max-height: 4.0625em; background-color: #E7E7E6; - border-left: 1px solid #BABBBD; + border-left: 1px solid #64748B; width: 30%; } @@ -498,8 +498,8 @@ Desktop Styles } .repo-list a:hover { - color: #4D5F87; - background-color: #CDE3F1; + color: #64748B; + background-color: #cec5f8ff; } .repo-list li:first-child { From 28f8ef5af03abd35a1832651abf28b5ec50290ea Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:16:05 -0500 Subject: [PATCH 394/440] Update normalize.css --- docs/assets/css/normalize.css | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css index e8f19ab7..963e57fb 100644 --- a/docs/assets/css/normalize.css +++ b/docs/assets/css/normalize.css @@ -70,7 +70,6 @@ h2 { h4 { font-size: 1em; - text-transform: uppercase; } .page-title { From c605cd6bb682a2c5ccd60d1c54ed9bee9cfc0e1a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:16:08 -0500 Subject: [PATCH 395/440] Update main.css --- docs/assets/css/main.css | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index d01f11fe..1601628c 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -70,7 +70,6 @@ h2 { h4 { font-size: 1em; - text-transform: uppercase; } .page-title { @@ -122,32 +121,32 @@ a { a, a:link, a:visited { - color: #0072ce; - border-bottom: 1px dotted #0072ce; + color: #9d8cf2ff; + border-bottom: 1px dotted #9d8cf2ff; text-decoration: none; } a:hover { border-bottom: 1px solid #7eb8dd; - color: #7eb8dd; + color: #9d8cf2ff; text-decoration: none; } a:active { border-bottom: 1px solid #002d72; - color: #002d72; + color: #4b4085ff; text-decoration: none; } a:focus { border-bottom: 1px solid #0072ce; - color: #0072ce; + color: #4b4085ff; outline: thin dotted; text-decoration: none; } a.title-link { - color: #75787B; + color: #9d8cf2ff; border-bottom: none; } @@ -188,7 +187,7 @@ Navigation .sidebar-nav a:link, .sidebar-nav a:visited { border-bottom: none; - color: #75787b; + color: #1E293B; } .sidebar-nav li:hover, .sidebar-nav a:focus, @@ -339,7 +338,7 @@ Style */ .intro { - color: #75787B; + color: #1E293B; } li h4 { @@ -377,7 +376,7 @@ ul.posts { } .post-date { - color: #75787B; + color: #64748B; } /* @@ -484,7 +483,7 @@ Desktop Styles height: 4.0625em; max-height: 4.0625em; background-color: #E7E7E6; - border-left: 1px solid #BABBBD; + border-left: 1px solid #64748B; width: 30%; } @@ -498,8 +497,8 @@ Desktop Styles } .repo-list a:hover { - color: #4D5F87; - background-color: #CDE3F1; + color: #64748B; + background-color: #cec5f8ff; } .repo-list li:first-child { From 0d1c2945f1213b30470228f38d169cf0b126334a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:28:53 -0500 Subject: [PATCH 396/440] Update main.css --- docs/assets/css/main.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 1601628c..87534730 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -121,14 +121,14 @@ a { a, a:link, a:visited { - color: #9d8cf2ff; - border-bottom: 1px dotted #9d8cf2ff; + color: #4b4085ff; + border-bottom: 1px dotted #4b4085ff; text-decoration: none; } a:hover { border-bottom: 1px solid #7eb8dd; - color: #9d8cf2ff; + color: #4b4085ff; text-decoration: none; } @@ -498,7 +498,7 @@ Desktop Styles .repo-list a:hover { color: #64748B; - background-color: #cec5f8ff; + background-color: #4b4085ff; } .repo-list li:first-child { From 5f0443215c3446e5122e00a81843cb5cabb4db89 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:29:45 -0500 Subject: [PATCH 397/440] Update normalize.css --- docs/assets/css/normalize.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css index 963e57fb..b2da3313 100644 --- a/docs/assets/css/normalize.css +++ b/docs/assets/css/normalize.css @@ -121,14 +121,14 @@ a { a, a:link, a:visited { - color: #9d8cf2ff; - border-bottom: 1px dotted #9d8cf2ff; + color: #4b4085ff; + border-bottom: 1px dotted #4b4085ff; text-decoration: none; } a:hover { border-bottom: 1px solid #7eb8dd; - color: #9d8cf2ff; + color: #4b4085ff; text-decoration: none; } @@ -153,7 +153,7 @@ a.title-link { a.title-link:hover, a.title-link:active, a.title-link:focus { - color: #9d8cf2ff; + color: #4b4085ff; border-bottom: none; } @@ -498,7 +498,7 @@ Desktop Styles .repo-list a:hover { color: #64748B; - background-color: #cec5f8ff; + background-color: #4b4085ff; } .repo-list li:first-child { From ab1989e51f4e32f4fe19b3060cfcb12730d00549 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:35:39 -0500 Subject: [PATCH 398/440] Update syntax.css --- docs/assets/css/syntax.css | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/assets/css/syntax.css b/docs/assets/css/syntax.css index 73ca10f9..9779c73c 100644 --- a/docs/assets/css/syntax.css +++ b/docs/assets/css/syntax.css @@ -24,7 +24,7 @@ .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ .highlight .kr { font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #cec5f8ff } /* Literal.Number */ +.highlight .m { color: #4b408ff } /* Literal.Number */ .highlight .s { color: #d14 } /* Literal.String */ .highlight .na { color: #008080 } /* Name.Attribute */ .highlight .nb { color: #0086B3 } /* Name.Builtin */ @@ -34,14 +34,14 @@ .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ .highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #cec5f8ff } /* Name.Tag */ -.highlight .nv { color: #cec5f8ff } /* Name.Variable */ +.highlight .nt { color: #4b408ff } /* Name.Tag */ +.highlight .nv { color: #4b408ff } /* Name.Variable */ .highlight .ow { font-weight: bold } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #cec5f8ff } /* Literal.Number.Float */ -.highlight .mh { color: #cec5f8ff } /* Literal.Number.Hex */ -.highlight .mi { color: #cec5f8ff } /* Literal.Number.Integer */ -.highlight .mo { color: #cec5f8ff } /* Literal.Number.Oct */ +.highlight .mf { color: #4b408ff } /* Literal.Number.Float */ +.highlight .mh { color: #4b408ff } /* Literal.Number.Hex */ +.highlight .mi { color: #4b408ff } /* Literal.Number.Integer */ +.highlight .mo { color: #4b408ff } /* Literal.Number.Oct */ .highlight .sb { color: #d14 } /* Literal.String.Backtick */ .highlight .sc { color: #d14 } /* Literal.String.Char */ .highlight .sd { color: #d14 } /* Literal.String.Doc */ @@ -54,7 +54,7 @@ .highlight .s1 { color: #d14 } /* Literal.String.Single */ .highlight .ss { color: #990073 } /* Literal.String.Symbol */ .highlight .bp { color: #64748B } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #cec5f8ff } /* Name.Variable.Class */ -.highlight .vg { color: #cec5f8ff } /* Name.Variable.Global */ -.highlight .vi { color: #cec5f8ff } /* Name.Variable.Instance */ -.highlight .il { color: #cec5f8ff } /* Literal.Number.Integer.Long */ +.highlight .vc { color: #4b408ff } /* Name.Variable.Class */ +.highlight .vg { color: #4b408ff } /* Name.Variable.Global */ +.highlight .vi { color: #4b408ff } /* Name.Variable.Instance */ +.highlight .il { color: #4b408ff } /* Literal.Number.Integer.Long */ From def89a568942cf881cbdbe9aabf5a805cfb37df9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:39:40 -0500 Subject: [PATCH 399/440] Update main.css --- docs/assets/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 87534730..644d14f6 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -127,7 +127,7 @@ a:visited { } a:hover { - border-bottom: 1px solid #7eb8dd; + border-bottom: 1px solid #4b4085ff; color: #4b4085ff; text-decoration: none; } From 791fb52251327878d2973e18a5dfc5c8fad32084 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:43:56 -0500 Subject: [PATCH 400/440] Update main.css --- docs/assets/css/main.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 644d14f6..2467e90f 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -121,8 +121,8 @@ a { a, a:link, a:visited { - color: #4b4085ff; - border-bottom: 1px dotted #4b4085ff; + color: #64748B; + border-bottom: 1px dotted #64748B; text-decoration: none; } @@ -140,7 +140,7 @@ a:active { a:focus { border-bottom: 1px solid #0072ce; - color: #4b4085ff; + color: #000000; outline: thin dotted; text-decoration: none; } From 692186c5c5fd7f6a0a5b2a7e5c6cb3bedd8d136b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 20 Nov 2024 22:45:25 -0500 Subject: [PATCH 401/440] Update main.css --- docs/assets/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 2467e90f..22b551c9 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -134,7 +134,7 @@ a:hover { a:active { border-bottom: 1px solid #002d72; - color: #4b4085ff; + color: #002d72; text-decoration: none; } @@ -153,7 +153,7 @@ a.title-link { a.title-link:hover, a.title-link:active, a.title-link:focus { - color: #7eb8dd; + color: #9d8cf2ff; border-bottom: none; } From 51974cb12f0d31174b5ee0a59bb5bf4ef95493e6 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 09:44:05 -0500 Subject: [PATCH 402/440] Update main.css --- docs/assets/css/main.css | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 22b551c9..92356112 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -146,19 +146,19 @@ a:focus { } a.title-link { - color: #9d8cf2ff; + color: ##4b408ff; border-bottom: none; } a.title-link:hover, a.title-link:active, a.title-link:focus { - color: #9d8cf2ff; + color: #6366F1; border-bottom: none; } a.skip-link { - color: #0072ce; + color: #26374A; border-bottom: none; padding: .25em; } @@ -166,7 +166,7 @@ a.skip-link { a.skip-link:hover, a.skip-link:active, a.skip-link:focus { - background-color: #0072ce; + background-color: #26374A; color: #fff; border-bottom: none; } @@ -187,13 +187,13 @@ Navigation .sidebar-nav a:link, .sidebar-nav a:visited { border-bottom: none; - color: #1E293B; + color: #26374A; } .sidebar-nav li:hover, .sidebar-nav a:focus, .sidebar-nav li:active, .sidebar-nav .sidebar-nav-active { - color: #75787b; + color: #26374A; border-left: 4px solid {{ site.brand_color }}; background-color: transparent; border-bottom: 1px solid #babbbd; From 977d2c12696fb70238f7279690db982cb53804e7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:21:11 -0500 Subject: [PATCH 403/440] Update main.css --- docs/assets/css/main.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 92356112..f134355b 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -538,3 +538,5 @@ Mobile Styles } } + +!important From 2d0483b3c42e8e8a6addb11e349317e95577912e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:39:40 -0500 Subject: [PATCH 404/440] Update main.css --- docs/assets/css/main.css | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index f134355b..8f658512 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -121,7 +121,7 @@ a { a, a:link, a:visited { - color: #64748B; + color: #64748B !important; border-bottom: 1px dotted #64748B; text-decoration: none; } @@ -538,5 +538,3 @@ Mobile Styles } } - -!important From 8d95c275bb4d3f801ed2ecf511c617bf034bfe46 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:55:49 -0500 Subject: [PATCH 405/440] Update main.css --- docs/assets/css/main.css | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index 8f658512..d19e002f 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -121,25 +121,25 @@ a { a, a:link, a:visited { - color: #64748B !important; - border-bottom: 1px dotted #64748B; + color: #4b4085ff !important; + border-bottom: 1px dotted #4b4085ff; text-decoration: none; } a:hover { - border-bottom: 1px solid #4b4085ff; - color: #4b4085ff; + border-bottom: 1px solid #6366F1; + color: #6366F1; text-decoration: none; } a:active { - border-bottom: 1px solid #002d72; - color: #002d72; + border-bottom: 1px solid #6366F1; + color: #6366F1; text-decoration: none; } a:focus { - border-bottom: 1px solid #0072ce; + border-bottom: 1px solid #6366F1; color: #000000; outline: thin dotted; text-decoration: none; From e8fd91c06f12db8cd722e0a95853f42de4173178 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:07:03 -0500 Subject: [PATCH 406/440] Update main.css --- docs/assets/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index d19e002f..e3a887ef 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -53,8 +53,8 @@ strong { .site-title { font-size: 1.625em; font-family: "Avenir Next", Arial, sans-serif; - font-weight: normal; - color: #1E293B; + font-weight: bolder; + color: #000000; margin: 0; line-height: 1.2941176470588236; display: inline-block; From cca57fed5cd425356d35986c1148c3995358c175 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:11:01 -0500 Subject: [PATCH 407/440] Update normalize.css --- docs/assets/css/normalize.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/normalize.css b/docs/assets/css/normalize.css index b2da3313..daf1392c 100644 --- a/docs/assets/css/normalize.css +++ b/docs/assets/css/normalize.css @@ -53,8 +53,8 @@ strong { .site-title { font-size: 1.625em; font-family: "Avenir Next", Arial, sans-serif; - font-weight: normal; - color: #1E293B; + font-weight: bolder; + color: #0000000; margin: 0; line-height: 1.2941176470588236; display: inline-block; From 3857e533d246886f2f40f1f0c2ba028982ec1687 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:21:58 -0500 Subject: [PATCH 408/440] Update _config.yml --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index d0998e73..55399393 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -74,7 +74,7 @@ repos: url: # Style Variables -brand_color: "#4b4085ff" +brand_color: "#9d8cf2ff" # Offline caching offline_cache: false From 98538c1964ecfba9374e40c9cf7a329dde03fef5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:24:33 -0500 Subject: [PATCH 409/440] Update main.css --- docs/assets/css/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index e3a887ef..8d058240 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -53,7 +53,7 @@ strong { .site-title { font-size: 1.625em; font-family: "Avenir Next", Arial, sans-serif; - font-weight: bolder; + font-weight: bold; color: #000000; margin: 0; line-height: 1.2941176470588236; @@ -146,7 +146,7 @@ a:focus { } a.title-link { - color: ##4b408ff; + color: ##000000; border-bottom: none; } From 2251561721e96fc4a2ddaf188a1a1ec2f60ec5ea Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:34:24 -0500 Subject: [PATCH 410/440] Update monitoring.md --- docs/_pages/en/monitoring.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index fb6fdbf7..e623ed35 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -26,7 +26,7 @@ We expect there may be some additional features needed to get the data to target API throttling allows us to manage high API traffic and helps maintain the system’s stability. This helps avoid overloading situations where too many requests are processed simultaneously. -The limit for API requests from one form is **500 requests per minute**. Should you happen to exceed the limit, you will get a <code>RateLimitError</code>. You may either wait and try again, or request a higher limit for your form. If you require an API request rate increase, [contact Support](https://forms-formulaires.alpha.canada.ca/en/support). +The limit for API requests from one form is **500 requests per minute** by default. Should you happen to exceed the limit, you will get a <code>RateLimitError</code>. You may either wait and try again, or request a higher limit for your form. If you require an API request rate increase, please [contact Support](https://forms-formulaires.alpha.canada.ca/en/support) and we'll be able to increase the limit to 1000 requests per minute for a period of time. You can see additional information in the headers included as part of the API response: - <code>X-RateLimit-Limit</code>: the current limit of API requests for your form per 60 seconds @@ -34,8 +34,8 @@ You can see additional information in the headers included as part of the API re - <code>X-RateLimit-Reset</code>: the moment at which the limit will reset to the full limit amount - <code>Retry-After</code>: the time in seconds to wait before sending another request to the API -In the future, we anticipate the API call limits may be tied to different use cases or types of usage and will try to determine appropriate limits for API requests per minute. +In the future, we anticipate the API call limits may be tied to different use cases or types of usage and will try to determine more appropriate limits for API requests per minute. ### Refreshing API keys -Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and regenerated, simply requiring a change in the parameters being queried in the request. +Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and recreated, simply requiring a change in the parameters being queried in the request. From 5b6b65ed39f29a4da24dd223412b0c944e45bc2b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:37:42 -0500 Subject: [PATCH 411/440] Update surveiller.md --- docs/_pages/fr/surveiller.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index 32836f97..66d5a781 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -26,7 +26,7 @@ Nous nous attendons à ce que des fonctionnalités supplémentaires soient néce Les limitations en matière de requêtes API nous permet de gérer le trafic élevé et de maintenir la stabilité du système. Cela permettra d’éviter les situations de surcharge où trop de demandes sont traitées simultanément. -La limite des demandes d'API à partir d'un formulaire est de **500 demandes par minute**. Si vous dépassez cette limite, vous obtiendrez une erreur <code>429 RateLimitError</code>. Vous pouvez soit attendre et réessayer, ou demander une limite plus élevée pour votre formulaire. Si vous avez besoin d'une augmentation du nombre de requêtes API, [contactez l'équipe de soutien](https://forms-formulaires.alpha.canada.ca/fr/support). +La limite des demandes d'API à partir d'un formulaire est de **500 demandes par minute** par défaut. Si vous dépassez cette limite, vous obtiendrez une erreur <code>429 RateLimitError</code>. Vous pouvez soit attendre et réessayer, ou demander une limite plus élevée pour votre formulaire. Si vous avez besoin d'une augmentation du nombre de requêtes API, veuillez [contactez l'équipe de soutien](https://forms-formulaires.alpha.canada.ca/fr/support) et nous pourrons augmenter la limite à 1000 demandes par minute pendant certaine période de temps. Vous pouvez obtenir des informations supplémentaires dans les en-têtes inclus dans la réponse de l'API : - <code>X-RateLimit-Limit</code> : la limite actuelle de demandes API pour votre formulaire par 60 secondes @@ -34,10 +34,10 @@ Vous pouvez obtenir des informations supplémentaires dans les en-têtes inclus - <code>X-RateLimit-Reset</code> : le moment où la limite sera réinitialisée au montant total de la limite - <code>Retry-After</code> : le temps en secondes à attendre avant d'envoyer une autre demande à l'API -À l'avenir, nous prévoyons que les limites d’API seront liées à différents cas d’utilisation ou types d’utilisation et nous essaierons de déterminer les limites appropriées par minute pour les demandes d’API. +À l'avenir, nous prévoyons que les limites d’API seront liées à différents cas d’utilisation ou types d’utilisation et nous essaierons de déterminer des limites plus appropriées par minute pour les demandes d’API. ### Actualisation des clés API -L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être révoquées et régénérées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. +L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être révoquées et recrées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. From 6dee8c589cbe48d83623e13aa9fc77a95ac8512f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 18 Dec 2024 15:23:26 -0500 Subject: [PATCH 412/440] Update getting-started.md --- docs/_pages/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 2c709caa..7bb43ea2 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -16,6 +16,6 @@ The purpose of this API is to allow you to securely and reliably retrieve form s - The form set to deliver responses via “Download” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - - Infrastructure development resources who can craft HTTP requests and use Azure or AWS to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet._ + - Infrastructure development resources who can craft HTTP requests to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet._ - An API key (provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email for this first version). In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. > **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** From 4ff0963017089c74c07cea98028f2fe05ef44330 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 18 Dec 2024 15:25:01 -0500 Subject: [PATCH 413/440] Update pour-commencer.md --- docs/_pages/fr/pour-commencer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 07c77c4b..5501125f 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -16,6 +16,6 @@ Le but de cette API est de récupérer des soumissions de formulaires de manièr - Un formulaire configuré pour envoyer des réponses par l'intermédiaire de l'option « Télécharger » dans les paramètres. - Quelques réponses « fictives » soumises dans le formulaire - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire - - Des ressources de développement d’infrastructure capables de créer des demandes HTTP et d’utiliser Azure ou AWS pour atteindre l’API. _Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous._ + - Des ressources de développement d’infrastructure capables de créer des demandes HTTP pour atteindre l’API. _Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous._ - Une clé API (fournie sur demande par notre [équipe de Soutien](https://forms-formulaires.alpha.canada.ca/fr/support) par courriel crypté pour cette première version) Dans la demande, indiquez votre nom et votre adresse électronique, l'identifiant du formulaire et l'adresse courriel de développeur·euse qui mettra en place l'intégration API. > **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** From 42a3e438da636876a6f338e69bf1d202a222292b Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 14 Apr 2025 10:35:15 -0400 Subject: [PATCH 414/440] [ON HOLD] v2 API Docs: Self-serve selecting API delivery method within GC Forms and creating/deleting API key (#112) * Update getting-started.md * Update pour-commencer.md * Update home.md * Update accueil.md * Update home.md * Update translations.yml * Update monitoring.md * Update surveiller.md * Update getting-started.md * Update pour-commencer.md * Update getting-started.md --- docs/_data/translations.yml | 4 ++-- docs/_includes/accueil.md | 5 +++-- docs/_includes/home.md | 4 ++-- docs/_pages/en/getting-started.md | 8 ++++---- docs/_pages/en/monitoring.md | 3 ++- docs/_pages/fr/pour-commencer.md | 6 +++--- docs/_pages/fr/surveiller.md | 4 +--- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 873f03bc..bdec0fbc 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1: Limited pilot" + homepage-tag-line: "Version 2.0: Protected A only" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 1: Pilote limité" + homepage-tag-line: "Version 2.0: Protégé A seulement" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" diff --git a/docs/_includes/accueil.md b/docs/_includes/accueil.md index 9287d06e..afb4f05f 100644 --- a/docs/_includes/accueil.md +++ b/docs/_includes/accueil.md @@ -1,5 +1,6 @@ ### Bienvenue -Voici la première version de la documentation technique de l'interface de programmation d'applications (API) de Formulaires GC. Cette version de la documentation est destinée aux développeur·euse·s qui souhaitent utiliser l’API de Formulaires GC pour récupérer programmatiquement des données de soumission de formulaire dans l’application Web ou le système d’arrière-guichet de leur ministère. +Voici la documentation technique de l'interface de programmation d'applications (API) de Formulaires GC. Ce site est destiné aux développeur·euse·s qui souhaitent utiliser l’API de Formulaires GC pour récupérer programmatiquement des données de soumission de formulaire dans l’application Web ou le système d’arrière-guichet de leur ministère. + +Vous pourrez vous orienter dans le processus de configuration d’une intégration initiale et récupérer de façon sécurisée des soumissions de formulaires. Nous apprécions votre rétroaction ouverte et honnête pour nous aider à améliorer Formulaires GC et à bâtir l’avenir de ce produit. -Notre objectif est de vous orienter dans le processus de configuration d’une intégration initiale et de récupération sécurisée des soumissions de formulaires, tout en apprenant de votre expérience (par exemple, ce qui vous pose problème ou ce qui vous fait douter), puis d’intégrer vos rétroactions dans nos futures versions. Nous sommes reconnaissant·e·s de votre patience en cette période de perfectionnement. Votre rétroaction ouverte et honnête nous aidera à améliorer Formulaires GC et à bâtir l’avenir de ce produit. diff --git a/docs/_includes/home.md b/docs/_includes/home.md index 71dd9cd6..7b2fd08c 100644 --- a/docs/_includes/home.md +++ b/docs/_includes/home.md @@ -1,5 +1,5 @@ ### Welcome -Welcome to the first iteration of the GC Forms application programming interface (API) and its technical documentation. This version of the documentation is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. +Welcome to the technical documentation for the GC Forms application programming interface (API). This site is for developers who want to use the GC Forms API to retrieve form submission data programmatically into their department’s web application or back-office system. -Our goal is to guide you through setting up an initial integration and securely retrieving form submissions, while also being able to learn from you in the process (for example: what’s challenging or what’s confusing) and then integrate your feedback into our upcoming iterations. We appreciate your patience as we continue to fill in the gaps and iron out issues along the way. Your open and honest feedback will help us improve GC Forms and shape the future of this product. +Here you'll find how to set up an initial integration to securely retrieve form submissions. We appreciate your open and honest feedback to help us improve GC Forms and shape the future of this product. diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 7bb43ea2..859ddeb7 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -8,14 +8,14 @@ trans_url: "/pour-commencer/" ### Overview -The purpose of this API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. Eventually, this should alleviate the effort associated for high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. +The purpose of this API is to allow you to securely and reliably retrieve form submissions directly from an API endpoint. This should help alleviate the effort associated for very high volumes of form submissions. So, rather than having to manually download and sign off on the removal of responses to confirm their retrieval from the database, the API will automate the workflow with systems that talk to each other and exchange data. ### What you will need - A [GC Forms account](https://articles.alpha.canada.ca/forms-formulaires/) - A draft form (Unclassified or Protected A) - - The form set to deliver responses via “Download” in Settings + - The form set to "Receive responses via API” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - Infrastructure development resources who can craft HTTP requests to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet._ - - An API key (provided by our [Support team](https://forms-formulaires.alpha.canada.ca/en/support) by encrypted email for this first version). In the request include your name and email, the form ID, and the email address of the developer who will set up the API integration. -> **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** + - An API key (that you create in Settings). +> **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** \ No newline at end of file diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index e623ed35..15fc4ef3 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -38,4 +38,5 @@ In the future, we anticipate the API call limits may be tied to different use ca ### Refreshing API keys -Refreshing an API key may become necessary if a key is compromised. Keys can be revoked and recreated, simply requiring a change in the parameters being queried in the request. +Refreshing an API key may become necessary if a key is compromised. Keys can be deleted and recreated, simply requiring a change in the parameters being queried in the request. + diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 5501125f..790ae29c 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -13,9 +13,9 @@ Le but de cette API est de récupérer des soumissions de formulaires de manièr ### Ce dont vous aurez besoin - Un [compte Formulaires GC](https://articles.alpha.canada.ca/forms-formulaires/fr) - Un formulaire d'ébauche (Non-classifié ou Protégé A) - - Un formulaire configuré pour envoyer des réponses par l'intermédiaire de l'option « Télécharger » dans les paramètres. + - Un formulaire configuré pour « Recevoir les réponses via l'API » dans les paramètres. - Quelques réponses « fictives » soumises dans le formulaire - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire - Des ressources de développement d’infrastructure capables de créer des demandes HTTP pour atteindre l’API. _Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous._ - - Une clé API (fournie sur demande par notre [équipe de Soutien](https://forms-formulaires.alpha.canada.ca/fr/support) par courriel crypté pour cette première version) Dans la demande, indiquez votre nom et votre adresse électronique, l'identifiant du formulaire et l'adresse courriel de développeur·euse qui mettra en place l'intégration API. -> **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** + - Une clé API (que vous créez dans la section Paramètres) +> **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** \ No newline at end of file diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index 66d5a781..4981b3fb 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -38,6 +38,4 @@ Vous pouvez obtenir des informations supplémentaires dans les en-têtes inclus ### Actualisation des clés API -L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être révoquées et recrées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. - - +L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être supprimées et recréées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. From 67ae9a20bad80d067849e7ed36eeec2b334958dc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 8 May 2025 09:02:10 -0400 Subject: [PATCH 415/440] chore: update API docs --> Protected B (#161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update subtitle to Protected B * Add PB to getting started page EN * Add PB to getting started page FR * Update docs/_pages/fr/pour-commencer.md Co-authored-by: Clément JANIN <ninjaclem8@hotmail.fr> --------- Co-authored-by: Clément JANIN <ninjaclem8@hotmail.fr> --- docs/_data/translations.yml | 4 ++-- docs/_pages/en/getting-started.md | 4 ++-- docs/_pages/fr/pour-commencer.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index bdec0fbc..f4cc1aad 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 2.0: Protected A only" + homepage-tag-line: "Version 3.0: Protected B" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 2.0: Protégé A seulement" + homepage-tag-line: "Version 3.0: Protégé B" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 859ddeb7..7ed932f9 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -12,10 +12,10 @@ The purpose of this API is to allow you to securely and reliably retrieve form s ### What you will need - A [GC Forms account](https://articles.alpha.canada.ca/forms-formulaires/) - - A draft form (Unclassified or Protected A) + - A draft form (Unclassified, Protected A, or Protected B) - The form set to "Receive responses via API” in Settings - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - Infrastructure development resources who can craft HTTP requests to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet._ - An API key (that you create in Settings). -> **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** \ No newline at end of file +> **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 790ae29c..55b325e3 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -12,10 +12,10 @@ Le but de cette API est de récupérer des soumissions de formulaires de manièr ### Ce dont vous aurez besoin - Un [compte Formulaires GC](https://articles.alpha.canada.ca/forms-formulaires/fr) - - Un formulaire d'ébauche (Non-classifié ou Protégé A) + - Un formulaire d'ébauche (Non-classifié, Protégé A ou Protégé B) - Un formulaire configuré pour « Recevoir les réponses via l'API » dans les paramètres. - Quelques réponses « fictives » soumises dans le formulaire - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire - Des ressources de développement d’infrastructure capables de créer des demandes HTTP pour atteindre l’API. _Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous._ - Une clé API (que vous créez dans la section Paramètres) -> **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** \ No newline at end of file +> **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** From 9ce68d82da08d58dea4e281e56b9c97479fcdf02 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 21 May 2025 11:30:17 -0400 Subject: [PATCH 416/440] chore: Documentation update for question IDs and group tags (#171) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update making-requests.md Typo * Update making-requests.md English doc update * Update effectuer-des-demandes.md French updates * Update making-requests.md Match French * Update docs/_pages/fr/effectuer-des-demandes.md * Apply suggestions from code review Update what you can do with tags * Update docs/_pages/en/making-requests.md Co-authored-by: Clément JANIN <ninjaclem8@hotmail.fr> --------- Co-authored-by: Clément JANIN <ninjaclem8@hotmail.fr> --- docs/_pages/en/making-requests.md | 33 +++++++++++++++++++++++- docs/_pages/fr/effectuer-des-demandes.md | 29 +++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 001814d7..f7d83322 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -39,7 +39,7 @@ We’ve developed some examples that you can reference or run the program for, t - [Python](https://github.com/cds-snc/forms-api/tree/main/examples/python) - [Bash /Curl](https://github.com/cds-snc/forms-api/tree/main/examples/bash) -Work with your development team to test out a draft form and ensure the API integration is receiving responses, able to decrypt, check the hash, and confrim the responses or report a problem. Once that process is complete, you are ready to publish your form with this data delivery method. +Work with your development team to test out a draft form and ensure the API integration is receiving responses, able to decrypt, check the hash, and confirm the responses or report a problem. Once that process is complete, you are ready to publish your form with this data delivery method. ### Retrieving **new** form submissions @@ -297,6 +297,15 @@ GET /forms/{formID}/template > _Note: The questions will be in a data structure that is JSON format when retrieved. This helps if you’ll be transforming the data and need to match the answers to the questions._ +You can configure question attributes with customizable unique **Question IDs** and **additional tags**. These two attributes can be used to help map form response data to target systems or destination fields in a database, making it easier to update API integrations with a consistent way of mapping response data. + +You might use these attributes to: +- Clarify a field's purpose +- Organize and sort data +- Support automation + +Learn more below. + ##### Response status <table> @@ -367,3 +376,25 @@ GET /forms/{formID}/template <td> “Form ID” is incorrect or could not be found. </td> + +#### To set and customize unique Question IDs + +The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. + +**GC Forms gives you the option to configure a single unique question ID:** + +1. Create a new form or navigate to an existing form in GC Forms. +2. In “Edit”, select a question and click “More”. +3. In the modal, scroll down to “Customize API data attributes”. +4. Modify the Question ID to a unique value of your choice. + +#### To label and organize data with Additional tags + +The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. + +**GC Forms gives you the option to configure multiple tags:** + +1. Create a new form or navigate to an existing form in GC Forms. +2. In “Edit”, select a question and click “More”. +3. In the modal, scroll down to “Customize API data attributes”. +4. Add multiple tags to a question to mark data in a helpful way. diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index b93b1301..98bbebee 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -294,6 +294,14 @@ GET /forms/{formID}/template > _Remarque : Les questions seront dans une structure de données au format JSON lorsqu’elles seront récupérées. Cela est utile si vous transformez les données et que vous devez faire correspondre les réponses aux questions._ +Vous pouvez configurer les attributs des questions avec des **identifiants de question** et des **balises supplémentaires**. Ces deux attributs peuvent être utilisés pour aider à mettre en correspondance les données des réponses aux formulaires avec les systèmes cibles ou les champs de destination dans une base de données. Ceci facilite la mise à jour d'intégrations API avec une manière cohérente de mapper les données des réponses. + +Vous pouvez utiliser ces attributs pour : +- clarifier l'objectif d'un champ +- organiser et trier les données +- soutenir l'automatisation + +Pour en savoir plus, voir ci-dessous. ##### Statut de la réponse <table> @@ -367,3 +375,24 @@ GET /forms/{formID}/template Le renseignement “Form ID” est incorrect ou n’a pas pu être trouvé. </td> +#### Pour définir et personnaliser des identifiants de question uniques + +L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. + +**Formulaires GC vous offre la possibilité de configurer un identifiant de question unique :** + +1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. +2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». +3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». +4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. + +#### Pour étiqueter et organiser les données avec des balises supplémentaires + +Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. + +**Formulaires GC vous offre la possibilité de configurer plusieurs balises :** + +1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. +2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». +3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». +4. Ajoutez plusieurs balises à une question pour marquer les données de manière utile. From 907d303a721b3423f881bd77a1a6e37c98f63d04 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:45:46 -0400 Subject: [PATCH 417/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index f7d83322..9c4be7b4 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -376,8 +376,9 @@ Learn more below. <td> “Form ID” is incorrect or could not be found. </td> +</table> -#### To set and customize unique Question IDs +##### To set and customize unique Question IDs The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. @@ -388,7 +389,7 @@ The Question ID is a unique value that allows you to consistently refer to a for 3. In the modal, scroll down to “Customize API data attributes”. 4. Modify the Question ID to a unique value of your choice. -#### To label and organize data with Additional tags +**To label and organize data with Additional tags** The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. From f412c96c8d48ea16073fe0d5ad1f1b84029f9043 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:46:36 -0400 Subject: [PATCH 418/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 98bbebee..6856f254 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -302,6 +302,7 @@ Vous pouvez utiliser ces attributs pour : - soutenir l'automatisation Pour en savoir plus, voir ci-dessous. + ##### Statut de la réponse <table> @@ -374,8 +375,9 @@ Pour en savoir plus, voir ci-dessous. <td> Le renseignement “Form ID” est incorrect ou n’a pas pu être trouvé. </td> +</table> -#### Pour définir et personnaliser des identifiants de question uniques +##### Pour définir et personnaliser des identifiants de question uniques L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. @@ -386,7 +388,7 @@ L'identifiant de la question est une valeur unique qui vous permet de faire réf 3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». 4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. -#### Pour étiqueter et organiser les données avec des balises supplémentaires +**Pour étiqueter et organiser les données avec des balises supplémentaires** Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. From 78b34c0d643abe5dad7eff9c743d3c5a834dbe69 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:47:23 -0400 Subject: [PATCH 419/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 6856f254..01d8bb21 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -377,6 +377,8 @@ Pour en savoir plus, voir ci-dessous. </td> </table> +--- + ##### Pour définir et personnaliser des identifiants de question uniques L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. From 59ce387571d1c78c8f06762455166b4de796919f Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:47:50 -0400 Subject: [PATCH 420/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 9c4be7b4..a1246202 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -378,6 +378,8 @@ Learn more below. </td> </table> +--- + ##### To set and customize unique Question IDs The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. From 23bb1377c2eff71cd0c6c79ed95f71b973dbec4d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:48:51 -0400 Subject: [PATCH 421/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index a1246202..d63d518a 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -376,6 +376,7 @@ Learn more below. <td> “Form ID” is incorrect or could not be found. </td> +</tr> </table> --- From e79e8e3eb0c770371be310483f80cfc8ebf451ff Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:49:16 -0400 Subject: [PATCH 422/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 01d8bb21..1d095479 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -375,6 +375,7 @@ Pour en savoir plus, voir ci-dessous. <td> Le renseignement “Form ID” est incorrect ou n’a pas pu être trouvé. </td> +</tr> </table> --- From 2a6e3c32e3787d7187e51fb659e7176c736ccd8e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:51:05 -0400 Subject: [PATCH 423/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 32 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index d63d518a..415433d3 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -287,6 +287,21 @@ To report a problem include a message formatted like the one below in the HTTP P ### Getting form questions +##### To set and customize unique Question IDs + +The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. + +**GC Forms gives you the option to configure a single unique question ID:** + +1. Create a new form or navigate to an existing form in GC Forms. +2. In “Edit”, select a question and click “More”. +3. In the modal, scroll down to “Customize API data attributes”. +4. Modify the Question ID to a unique value of your choice. + +**To label and organize data with Additional tags** + +The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. + ##### HTTP request This URL path retrieves the questions that were asked in JSON format so they can more easily be associated with the answer data retrieved: @@ -379,23 +394,6 @@ Learn more below. </tr> </table> ---- - -##### To set and customize unique Question IDs - -The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. - -**GC Forms gives you the option to configure a single unique question ID:** - -1. Create a new form or navigate to an existing form in GC Forms. -2. In “Edit”, select a question and click “More”. -3. In the modal, scroll down to “Customize API data attributes”. -4. Modify the Question ID to a unique value of your choice. - -**To label and organize data with Additional tags** - -The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. - **GC Forms gives you the option to configure multiple tags:** 1. Create a new form or navigate to an existing form in GC Forms. From f712009be6cda516759371a9bb0b5d2b418ac4cc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:51:50 -0400 Subject: [PATCH 424/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 46 ++++++++++++------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 1d095479..9bbb53ae 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -284,6 +284,28 @@ Pour signaler un problème, incluez un message au format similaire à celui ci-d ### Obtenir les questions du formulaire +#### Pour définir et personnaliser des identifiants de question uniques + +L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. + +**Formulaires GC vous offre la possibilité de configurer un identifiant de question unique :** + +1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. +2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». +3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». +4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. + +**Pour étiqueter et organiser les données avec des balises supplémentaires** + +Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. + +**Formulaires GC vous offre la possibilité de configurer plusieurs balises :** + +1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. +2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». +3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». +4. Ajoutez plusieurs balises à une question pour marquer les données de manière utile. + ##### Demande HTTP Ce chemin d’URL récupère les questions qui ont été posées au format JSON afin qu’elles puissent être plus facilement associées aux réponses récupérées : @@ -377,27 +399,3 @@ Pour en savoir plus, voir ci-dessous. </td> </tr> </table> - ---- - -##### Pour définir et personnaliser des identifiants de question uniques - -L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. - -**Formulaires GC vous offre la possibilité de configurer un identifiant de question unique :** - -1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. -2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». -3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». -4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. - -**Pour étiqueter et organiser les données avec des balises supplémentaires** - -Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. - -**Formulaires GC vous offre la possibilité de configurer plusieurs balises :** - -1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. -2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». -3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». -4. Ajoutez plusieurs balises à une question pour marquer les données de manière utile. From 5e677c26e1a22259302afb9086e7d4968bc5de3d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:53:45 -0400 Subject: [PATCH 425/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 415433d3..ed3de5a9 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -287,7 +287,7 @@ To report a problem include a message formatted like the one below in the HTTP P ### Getting form questions -##### To set and customize unique Question IDs +#### To set and customize unique Question IDs The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. @@ -298,10 +298,17 @@ The Question ID is a unique value that allows you to consistently refer to a for 3. In the modal, scroll down to “Customize API data attributes”. 4. Modify the Question ID to a unique value of your choice. -**To label and organize data with Additional tags** +#### To label and organize data with Additional tags The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. +**GC Forms gives you the option to configure multiple tags:** + +1. Create a new form or navigate to an existing form in GC Forms. +2. In “Edit”, select a question and click “More”. +3. In the modal, scroll down to “Customize API data attributes”. +4. Add multiple tags to a question to mark data in a helpful way. + ##### HTTP request This URL path retrieves the questions that were asked in JSON format so they can more easily be associated with the answer data retrieved: @@ -393,10 +400,3 @@ Learn more below. </td> </tr> </table> - -**GC Forms gives you the option to configure multiple tags:** - -1. Create a new form or navigate to an existing form in GC Forms. -2. In “Edit”, select a question and click “More”. -3. In the modal, scroll down to “Customize API data attributes”. -4. Add multiple tags to a question to mark data in a helpful way. From 9f4bdfc4d88b3113d60176e439cea50e54394815 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 15:54:12 -0400 Subject: [PATCH 426/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 9bbb53ae..2c03b415 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -295,7 +295,7 @@ L'identifiant de la question est une valeur unique qui vous permet de faire réf 3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». 4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. -**Pour étiqueter et organiser les données avec des balises supplémentaires** +#### Pour étiqueter et organiser les données avec des balises supplémentaires Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. From dc1191cbf38d5c7a462482bee94da5066459e49e Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:02:53 -0400 Subject: [PATCH 427/440] Update making-requests.md --- docs/_pages/en/making-requests.md | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index ed3de5a9..23ee6314 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -287,28 +287,6 @@ To report a problem include a message formatted like the one below in the HTTP P ### Getting form questions -#### To set and customize unique Question IDs - -The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. - -**GC Forms gives you the option to configure a single unique question ID:** - -1. Create a new form or navigate to an existing form in GC Forms. -2. In “Edit”, select a question and click “More”. -3. In the modal, scroll down to “Customize API data attributes”. -4. Modify the Question ID to a unique value of your choice. - -#### To label and organize data with Additional tags - -The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. - -**GC Forms gives you the option to configure multiple tags:** - -1. Create a new form or navigate to an existing form in GC Forms. -2. In “Edit”, select a question and click “More”. -3. In the modal, scroll down to “Customize API data attributes”. -4. Add multiple tags to a question to mark data in a helpful way. - ##### HTTP request This URL path retrieves the questions that were asked in JSON format so they can more easily be associated with the answer data retrieved: @@ -400,3 +378,25 @@ Learn more below. </td> </tr> </table> + +#### To set and customize unique Question IDs + +The Question ID is a unique value that allows you to consistently refer to a form element so that it can be matched across republished form versions, or other data structures and systems. This can provide a more scannable and useful way to identify and reference a question field. For example, a standard way to reference all first name questions or phone numbers across forms, so they land in the right place without having to be rewired individually. + +**GC Forms gives you the option to configure a single unique question ID:** + +1. Create a new form or navigate to an existing form in GC Forms. +2. In “Edit”, select a question and click “More”. +3. In the modal, scroll down to “Customize API data attributes”. +4. Modify the Question ID to a unique value of your choice. + +#### To label and organize data with Additional tags + +The additional tags are flexible labels that allow you to add metadata to form elements so that related questions can be marked, grouped, or categorized allowing data to be read, searched, sorted, and transformed by machines more meaningfully and easily. + +**GC Forms gives you the option to configure multiple tags:** + +1. Create a new form or navigate to an existing form in GC Forms. +2. In “Edit”, select a question and click “More”. +3. In the modal, scroll down to “Customize API data attributes”. +4. Add multiple tags to a question to mark data in a helpful way. From a1d716fc7aa11caf7875be73deffa26e1edcafa9 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:03:27 -0400 Subject: [PATCH 428/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 44 ++++++++++++------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 2c03b415..8d05db5a 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -284,28 +284,6 @@ Pour signaler un problème, incluez un message au format similaire à celui ci-d ### Obtenir les questions du formulaire -#### Pour définir et personnaliser des identifiants de question uniques - -L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. - -**Formulaires GC vous offre la possibilité de configurer un identifiant de question unique :** - -1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. -2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». -3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». -4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. - -#### Pour étiqueter et organiser les données avec des balises supplémentaires - -Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. - -**Formulaires GC vous offre la possibilité de configurer plusieurs balises :** - -1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. -2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». -3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». -4. Ajoutez plusieurs balises à une question pour marquer les données de manière utile. - ##### Demande HTTP Ce chemin d’URL récupère les questions qui ont été posées au format JSON afin qu’elles puissent être plus facilement associées aux réponses récupérées : @@ -392,6 +370,28 @@ Pour en savoir plus, voir ci-dessous. { "error": "Form template does not exist" } + + #### Pour définir et personnaliser des identifiants de question uniques + +L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. + +**Formulaires GC vous offre la possibilité de configurer un identifiant de question unique :** + +1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. +2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». +3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». +4. Modifiez l'identifiant de la question avec une valeur unique de votre choix. + +#### Pour étiqueter et organiser les données avec des balises supplémentaires + +Les balises supplémentaires sont des étiquettes flexibles qui vous permettent d'ajouter des métadonnées aux éléments du formulaire afin que les questions connexes puissent être marquées, regroupées ou catégorisées, ce qui permet de lire, de rechercher, de trier et d'organiser les données. + +**Formulaires GC vous offre la possibilité de configurer plusieurs balises :** + +1. Créez un nouveau formulaire ou naviguez vers un formulaire existant dans Formulaires GC. +2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». +3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». +4. Ajoutez plusieurs balises à une question pour marquer les données de manière utile. </code> </td> <td> From d90d917f01354279302a4359d8076de1416bb196 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:06:59 -0400 Subject: [PATCH 429/440] Update effectuer-des-demandes.md --- docs/_pages/fr/effectuer-des-demandes.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 8d05db5a..13259baa 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -370,8 +370,15 @@ Pour en savoir plus, voir ci-dessous. { "error": "Form template does not exist" } +</code> + </td> + <td> + Le renseignement “Form ID” est incorrect ou n’a pas pu être trouvé. + </td> +</tr> +</table> - #### Pour définir et personnaliser des identifiants de question uniques +#### Pour définir et personnaliser des identifiants de question uniques L'identifiant de la question est une valeur unique qui vous permet de faire référence de manière cohérente à un élément de formulaire afin qu'il puisse être mis en correspondance avec des versions de formulaire republiées ou d'autres structures et systèmes de données. Il peut s'agir d'un moyen plus facile et plus utile d'identifier et de se référer à un champ de question. Par exemple, une manière standard de se reférer à toutes les questions sur le prénom ou les numéros de téléphone dans tous les formulaires, de sorte qu'ils se retrouvent au bon endroit sans avoir à être tracées individuellement. @@ -392,10 +399,3 @@ Les balises supplémentaires sont des étiquettes flexibles qui vous permettent 2. Dans « Modifier », sélectionnez une question et cliquez sur « Plus ». 3. Dans la fenêtre modale, faites défiler vers le bas jusqu'à « Personnaliser les attributs de données de l'API ». 4. Ajoutez plusieurs balises à une question pour marquer les données de manière utile. -</code> - </td> - <td> - Le renseignement “Form ID” est incorrect ou n’a pas pu être trouvé. - </td> -</tr> -</table> From 2be28abc4c2d2320bf6f82ed86587f25aac45318 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Tue, 19 Aug 2025 10:48:31 -0400 Subject: [PATCH 430/440] Update translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index f4cc1aad..91d83b54 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 3.0: Protected B" + homepage-tag-line: "Version 1.5.0: Protected B" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 3.0: Protégé B" + homepage-tag-line: "Version 1.5.0: Protégé B" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" From 77341ea19ce7b67e7e888b4791d56a57165b31a7 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Fri, 29 Aug 2025 12:16:26 -0400 Subject: [PATCH 431/440] Update version number --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 91d83b54..0f7bcaaa 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1.5.0: Protected B" + homepage-tag-line: "Version 1.6.0: Protected B" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 1.5.0: Protégé B" + homepage-tag-line: "Version 1.6.0: Protégé B" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" From 3ab02f21b6f988bd4517e47aad67eb55c4325658 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Thu, 30 Oct 2025 09:00:57 -0400 Subject: [PATCH 432/440] chore: Update references to Settings in API docs (#246) * Modify homepage tag line in translations Updated the homepage tag line in both English and French translations to remove 'Protected B' as everything is now protected B, no need to differentiate. * API key refresh EN * Revise API key refresh to key rotation FR Updated the section on API key management to clarify the process of key rotation and its necessity. * Update API key instructions in getting-started.md Clarified API key generation instructions and security note. * Add API key requirement to documentation --- docs/_data/translations.yml | 4 ++-- docs/_pages/en/getting-started.md | 4 ++-- docs/_pages/en/monitoring.md | 4 ++-- docs/_pages/fr/pour-commencer.md | 4 +++- docs/_pages/fr/surveiller.md | 4 ++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 0f7bcaaa..8302f3f1 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1.6.0: Protected B" + homepage-tag-line: "Version 1.6.0" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 1.6.0: Protégé B" + homepage-tag-line: "Version 1.6.0" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" diff --git a/docs/_pages/en/getting-started.md b/docs/_pages/en/getting-started.md index 7ed932f9..4a5c07da 100644 --- a/docs/_pages/en/getting-started.md +++ b/docs/_pages/en/getting-started.md @@ -13,9 +13,9 @@ The purpose of this API is to allow you to securely and reliably retrieve form s ### What you will need - A [GC Forms account](https://articles.alpha.canada.ca/forms-formulaires/) - A draft form (Unclassified, Protected A, or Protected B) - - The form set to "Receive responses via API” in Settings + - An API key (that you generate in Settings > API integration). - A few “mock” responses submitted to the form - A target system where you plan on receiving form submission data - Infrastructure development resources who can craft HTTP requests to reach the API. _No infrastructure development capabilities available? This first version of the API might not be ready for you just yet._ - - An API key (that you create in Settings). + > **IMPORTANT: You must keep this API key secure as it is used to authenticate API requests and could be used to access protected data. Use encrypted email if you must share it with a developer team member to set up the integration.** diff --git a/docs/_pages/en/monitoring.md b/docs/_pages/en/monitoring.md index 15fc4ef3..f0ba8edc 100644 --- a/docs/_pages/en/monitoring.md +++ b/docs/_pages/en/monitoring.md @@ -36,7 +36,7 @@ You can see additional information in the headers included as part of the API re In the future, we anticipate the API call limits may be tied to different use cases or types of usage and will try to determine more appropriate limits for API requests per minute. -### Refreshing API keys +### Rotating API keys -Refreshing an API key may become necessary if a key is compromised. Keys can be deleted and recreated, simply requiring a change in the parameters being queried in the request. +Rotating an API key may become necessary if a key is compromised. You can generate a new key in form settings in the API integration tab. This also requires a change in the parameters being queried in the request. diff --git a/docs/_pages/fr/pour-commencer.md b/docs/_pages/fr/pour-commencer.md index 55b325e3..64992d84 100644 --- a/docs/_pages/fr/pour-commencer.md +++ b/docs/_pages/fr/pour-commencer.md @@ -13,9 +13,11 @@ Le but de cette API est de récupérer des soumissions de formulaires de manièr ### Ce dont vous aurez besoin - Un [compte Formulaires GC](https://articles.alpha.canada.ca/forms-formulaires/fr) - Un formulaire d'ébauche (Non-classifié, Protégé A ou Protégé B) + - Une clé API (que vous générez dans la section Paramètres > Intégration API) + - Un formulaire configuré pour « Recevoir les réponses via l'API » dans les paramètres. - Quelques réponses « fictives » soumises dans le formulaire - Un système cible dans lequel vous prévoyez de recevoir des données de soumission de formulaire - Des ressources de développement d’infrastructure capables de créer des demandes HTTP pour atteindre l’API. _Vous ne disposez d’aucune capacité de développement d’infrastructure? Cette première version de l’API pourrait ne pas être tout à fait prête pour vous._ - - Une clé API (que vous créez dans la section Paramètres) + > **IMPORTANT: Vous devez protéger cette clé API, car elle sert à authentifier les demandes API et pourrait être utilisée pour accéder à des données protégées. Si vous devez communiquer la clé à un·e membre d’une équipe de développement pour configurer l’intégration, utilisez un courriel chiffré.** diff --git a/docs/_pages/fr/surveiller.md b/docs/_pages/fr/surveiller.md index 4981b3fb..8aa94f42 100644 --- a/docs/_pages/fr/surveiller.md +++ b/docs/_pages/fr/surveiller.md @@ -36,6 +36,6 @@ Vous pouvez obtenir des informations supplémentaires dans les en-têtes inclus À l'avenir, nous prévoyons que les limites d’API seront liées à différents cas d’utilisation ou types d’utilisation et nous essaierons de déterminer des limites plus appropriées par minute pour les demandes d’API. -### Actualisation des clés API +### Rotation des clés API -L’actualisation d’une clé API peut devenir nécessaire si une clé est compromise. Les clés peuvent être supprimées et recréées, ce qui nécessite simplement une modification des paramètres demandés dans la demande. +L’La rotation d’une clé API peut s'avérer nécessaire si une clé est compromise. Vous pouvez générer une nouvelle clé dans les paramètre du formulaire, sous l'onglet Intégration API. Cela nécessite simplement une modification des paramètres demandés dans la demande. From d4c46e2402919daeda57a0f6bfc4ce3e235b7f74 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:24:26 -0500 Subject: [PATCH 433/440] Update version number in translations.yml --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 8302f3f1..660bb622 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1.6.0" + homepage-tag-line: "Version 1.7.0" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 1.6.0" + homepage-tag-line: "Version 1.7.0" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans" From 0b70c0627084314ef8419470f1619d1c83ce2520 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 19 Nov 2025 11:33:15 -0500 Subject: [PATCH 434/440] chore: Update documentation for file attachment feature (#238) * Modify homepage tag line in translations Updated the homepage tag line in both English and French translations to remove 'Protected B' as everything is now protected B, no need to differentiate. * API key refresh EN * Revise API key refresh to key rotation FR Updated the section on API key management to clarify the process of key rotation and its necessity. * Update API key instructions in getting-started.md Clarified API key generation instructions and security note. * Add API key requirement to documentation * Document file retrieval process for submissions - EN Added section on retrieving attached files from submissions, including security considerations and example response data. * Add details on retrieving form submission attachments - FR Added section on retrieving attachments from form submissions, including security considerations and example response data. * Revise documentation on form submission file retrieval Updated section headers and clarified file retrieval process. * Enhance security section for file retrieval Clarified the process of retrieving attached files securely, emphasizing the importance of checking the isPotentiallyMalicious attribute for safety. * Enhance security instructions for file analysis Added guidance on handling the 'isPotentiallyMalicious' attribute for security. * Update warning about file analysis responsibility Clarified responsibility for checking the 'isPotentiallyMalicious' attribute before opening linked files. * Clarify file scanning responsibility in documentation Clarified responsibility for checking the isPotentiallyMalicious attribute in file scanning. * Update file retrieval explanation in documentation Clarified that files are retrieved from AWS and updated the wording for better understanding. * Update explanation for retrieving attached files Clarified that files are retrieved from AWS and linked to responses. * Update file retrieval instructions with guidance link Added a link to the Guidance page for file uploads in form submissions. * Update API file retrieval instructions Added a reference link to the guide for uploading files in the API section. * Revise JSON example for file attachments Updated the JSON structure for file attachments in the documentation, adding fields for 'id', 'downloadLink', and 'md5'. * Revise JSON example for file attachments Updated the JSON structure for attached files in the documentation. * File scanning warning * Apply suggestion from @anikbrazeau * Apply suggestion from @anikbrazeau --- docs/_pages/en/making-requests.md | 39 ++++++++++++++++++++++ docs/_pages/fr/effectuer-des-demandes.md | 42 +++++++++++++++++++++++- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 23ee6314..1e0cd259 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -134,10 +134,49 @@ GET /forms/{formID}/submission/{submissionName} Security of the system is paramount and it is enhanced by encrypting form submissions. While encrypted in HTTPS, we’ve added another layer of security with AES-256-GSM encryption. When you get a form submission it will be encrypted and it will come with an encrypted key, an encrypted nonce, and an encrypted AuthTag. These can be decrypted using the Private key. +### Getting files that were attached to form submissions securely + +The retrieval of files attached within submissions is only possible via the API data delivery method. The same storage conditions apply as for submission data, where GC Forms only temporarily keeps data and files until downloaded and confirmed. To learn more about adding a file upload element to your form, consult our [Guidance page](https://articles.alpha.canada.ca/forms-formulaires/beta-instructions-retrieving-files-attached-via-api-limited-trial-feature/). + +Files are linked directly within responses (retrieval from AWS) and are accompanied by an attribute that shows whether scanning for malicious files detected any potential harm, with basic antivirus technology. Be careful when opening any attachments: choose a secure location, follow security guidelines, and run host-level sensors if possible. The safety of files cannot be guaranteed, as no software is perfect at detecting threats. + +While there is a file scanning software implemented via Amazon Web Services (AWS), to mark files, it is your responsibility to check the <code>isPotentiallyMalicious</code> attribute before opening the linked files. You can decide how to use this attribute, for example: sending a warning in the logs, running a quarantine system, or other logic you develop based on how you and your security team want to safeguard against malicious files. + +#### To retrieve files uploaded to a form: + +You will receive each submission as a raw JSON file that includes direct links to files, if attached. These direct download links are only valid for 10 seconds for security reasons.  + +As files are scanned upon being submitted, they may also be marked as potentially being malicious, based on the file scanning software. You must decide what to do with flagged files — whether to download those files or not if they include a flagged with a “malicious” or “bad” metadata attribute. Add some code for how to handle the encountering of <code>isPotentiallyMalicious:true</code>. You'll then be able to access submission data and files attached in your system.  + ### **Confirming** form submissions The confirmation step helps ensure the form submissions are exploitable and render as expected before they are permanently removed from the GC Forms system’s database. +Before confirming a response, ensure you’ve got access to all attached files, if any are present. These file download links are only temporarily available, as they are valid for up to 10 seconds. If you have not received all files, redownload the same form submission to get new download links. Report a problem if there is one with file or data. Once you are confident that you indeed have all submission data and files submitted, confirm that all data has been transferred successfully. Responses and files will then be removed from GC Forms after 30 days. + +#### Example of response data with files + +Data will look something like this when files are attached: + +<code> +{ +   "createdAt":1749476854628, +   "status":"New", +   "confirmationCode":"714dfe46-6fa1-4281-8d15-a39bcebc3c4f", +   "answers":"{\"1\":\"Test1\",\"2\":\"form_attachments/2025-06-09/8b42aafd-09e9-44ad-9208-d3891a7858df/output.txt\",\"3\":\"form_attachments/2025-06-09/9064b3c7-eee5-4599-99c8-a257b2b5f37d/a0393b10-396c-4b8d-a97c-15394fddda86.jpg\",\"4\":\"form_attachments/2025-06-09/0c7c3414-05e2-4ae6-a825-683857e4c0c4/IMG_0441.jpeg\"}", +   "checksum":"cc33cb49f6c088bf98b7315794db216e", +   "attachments":[ +      { + "id": "04d8aff7-25d7-49e5-8f01-77a8b6fba214", + "name":"output.txt", + "downloadLink":"https://...", + "isPotentiallyMalicious":true, + "md5":"54b0c58c7ce9f2a8b551351102ee0938" +      } +   ] +} +</code> + ##### HTTP request This URL path confirms form submissions were successfully retrieved from the system, thus removing them: diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 13259baa..b9db7901 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -14,7 +14,6 @@ childPages: L’API de Formulaires GC vous permet de récupérer des soumissions de formulaire sous forme de fichiers JSON. Vous pouvez obtenir jusqu’à 100 soumissions de formulaire par lot, et celles-ci sont accessibles jusqu’à 30 jours après la soumission, compte tenu de nos périodes actuelles de rétention des données. Les soumissions de formulaire sont chiffrées à l’aide d’une clé publique et peuvent être déchiffrées localement par vous. - ### Paramètres de requête Les demandes d’API pour les données de soumission de Formulaires GC sont possibles à l’aide de paramètres de requête tels que : @@ -131,10 +130,51 @@ GET /forms/{formID}/submission/{submissionName} La sécurité du système est primordiale et elle est renforcée par le chiffrement des soumissions de formulaires. Bien que le chiffrement soit effectué en HTTPS, nous avons ajouté une autre couche de sécurité avec le chiffrement AES-256-GSM. Lorsque vous recevrez une soumission de formulaire, elle sera chiffrée et elle comprendra une clé chiffrée, un nonce chiffré et un élément AuthTag chiffré. Ceux-ci peuvent être déchiffrés par l’intermédiaire d’une clé privée. +### Obtenir les fichiers joints aux soumissions de formulaires + +La récupération des fichiers joints aux soumissions n'est possible que via la méthode de livraison des données par l'entremise de l'API. Les conditions de stockage sont les mêmes que pour les données soumises, Formulaires GC ne conserve les données et les fichiers que temporairement, jusqu'à leur téléchargement et leur confirmation. Pour en savoir plus sur l'ajout d'éléments de téléversement de fichiers à votre formulaire, consultez notre [guide de référence](https://articles.alpha.canada.ca/forms-formulaires/fr/recuperation-via-api-de-fichiers-joints-beta-fonctionnalite-a-lessai/). + +Les fichiers sont directement liés aux réponses (récupérées de AWS) et ils sont accompagnés d'un attribut indiquant si l'analyse des fichiers malveillants a détecté un danger potentiel à l'aide de technologie antivirus de base. Soyez prudent lorsque vous ouvrez n'importe quelle pièces jointes : choisissez un emplacement sécurisé, suivez les consignes de sécurité, et exécutez des capteurs au niveau de l'hôte si possible. La sécurité des fichiers ne peut être garantie, car aucune technologie n'est parfaite pour détecter les menaces. + +Bien qu'un logiciel d'analyse de fichiers soit mis en œuvre avec Amazon Web Services (AWS), pour marquer les fichiers, il est de votre responsabilité de vérifier l'attribut de malveillance <code>isPotentiallyMalicious</code> avant d'ouvrir les fichiers liés. Vous pouvez décider de la manière d'utiliser cet attribut, par exemple : envoyer un avertissement dans les journeaux, exécuter un système de quarantaine ou toute autre logique que vous développez en fonction de la manière dont vous et votre équipe de sécurité souhaitez vous protéger contre les fichiers malveillants. + +#### Pour récupérer les fichiers téléchargés vers un formulaire en toute sécurité : + +Vous recevrez chaque soumission sous forme de fichier JSON brut comprenant des liens directs vers les fichiers, s'ils sont joints. Pour des raisons de sécurité, ces liens de téléchargement direct ne sont valables que pendant 10 secondes. + +Les fichiers étant analysés lors de leur soumission, ils peuvent également être signalés comme potentiellement malveillants, en fonction du logiciel d'analyse des fichiers. Vous devez décider quoi faire avec les fichiers signalés — soit que vous les téléchargez ou non, s'ils comportent un attribut de métadonnées « malveillant » ou « mauvais ». + +Ajoutez du code pour gérer les cas où les fichiers sont signalés et <code>isPotentiallyMalicious:true</code> est rencontré. Vous pourrez ensuite accéder aux données soumises et aux fichiers sécurisés joints dans votre système. + ### **Confirmer** des soumissions de formulaires L’étape de confirmation permet de s’assurer que les formulaires soumis sont exploitables et s’affichent comme prévu avant qu’ils ne soient définitivement retirés de la base de données du système Formulaires GC. +Avant de confirmer une réponse, assurez-vous d'avoir accès à tous les fichiers joints, le cas échéant. Ces liens de téléchargement de fichiers ne sont disponibles que temporairement, car ils ne sont valables que pendant 10 secondes. Si vous n'avez pas reçu tous les fichiers, téléchargez à nouveau le même formulaire soumis pour obtenir de nouveaux liens de téléchargement. Signalez tout problème lié aux fichiers ou aux données. Une fois que vous êtes certain d'avoir bien reçu toutes les données et tous les fichiers soumis, confirmez que toutes les données ont été transférées avec succès. Les réponses et les fichiers seront ensuite supprimés de GC Forms après 30 jours. + +#### Exemple de données de réponses avec fichiers + +Les données ressembleront à ceci lorsque des fichiers sont joints : + +<code> +{ +   "createdAt":1749476854628, +   "status":"New", +   "confirmationCode":"714dfe46-6fa1-4281-8d15-a39bcebc3c4f", +   "answers":"{\"1\":\"Test1\",\"2\":\"form_attachments/2025-06-09/8b42aafd-09e9-44ad-9208-d3891a7858df/output.txt\",\"3\":\"form_attachments/2025-06-09/9064b3c7-eee5-4599-99c8-a257b2b5f37d/a0393b10-396c-4b8d-a97c-15394fddda86.jpg\",\"4\":\"form_attachments/2025-06-09/0c7c3414-05e2-4ae6-a825-683857e4c0c4/IMG_0441.jpeg\"}", +   "checksum":"cc33cb49f6c088bf98b7315794db216e", +   "attachments":[ +      { + "id": "04d8aff7-25d7-49e5-8f01-77a8b6fba214", + "name":"output.txt", + "downloadLink":"https://...", + "isPotentiallyMalicious":true, + "md5":"54b0c58c7ce9f2a8b551351102ee0938" +      } +   ] +} +</code> + ##### Demande HTTP Le chemin d’URL confirme que les soumissions de formulaires ont bien été récupérées à partir du système et les supprime : From 34ea6b3dd46f8a7bacce3be8f23a63834da5c082 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 19 Nov 2025 11:58:05 -0500 Subject: [PATCH 435/440] Update Base URL for authentication endpoint in docs (#257) * Update Base URL for authentication endpoint * Change base URL to include versioning Updated the base URL for the API documentation. --- docs/_pages/en/authentication.md | 2 +- docs/_pages/fr/authentification.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_pages/en/authentication.md b/docs/_pages/en/authentication.md index 5832e33c..04ef0a8c 100644 --- a/docs/_pages/en/authentication.md +++ b/docs/_pages/en/authentication.md @@ -9,7 +9,7 @@ trans_url: "/authentification/" ### Base URL <code> -https://api.forms-formulaires.alpha.canada.ca/ +https://api.forms-formulaires.alpha.canada.ca/v1/... </code> diff --git a/docs/_pages/fr/authentification.md b/docs/_pages/fr/authentification.md index f89371be..a635bf35 100644 --- a/docs/_pages/fr/authentification.md +++ b/docs/_pages/fr/authentification.md @@ -9,7 +9,7 @@ trans_url: "/authentication/" ### URL de base <code> -https://api.forms-formulaires.alpha.canada.ca/ +https://api.forms-formulaires.alpha.canada.ca/v1/... </code> From dbda2f07f6c69afd9ef61a43e6ddfeba3b2213bc Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:56:13 -0500 Subject: [PATCH 436/440] Correct link for file retrieval guidance Fixed a broken link in the documentation regarding file retrieval and updated the guidance page link. --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 1e0cd259..8aa530cd 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -136,7 +136,7 @@ Security of the system is paramount and it is enhanced by encrypting form submis ### Getting files that were attached to form submissions securely -The retrieval of files attached within submissions is only possible via the API data delivery method. The same storage conditions apply as for submission data, where GC Forms only temporarily keeps data and files until downloaded and confirmed. To learn more about adding a file upload element to your form, consult our [Guidance page](https://articles.alpha.canada.ca/forms-formulaires/beta-instructions-retrieving-files-attached-via-api-limited-trial-feature/). +The retrieval of files attached within submissions is only possible via the API data delivery method. The same storage conditions apply as for submission data, where GC Forms only temporarily keeps data and files until downloaded and confirmed. To learn more about adding a file upload element to your form, consult our [Guidance page]([https://articles.alpha.canada.ca/forms-formulaires/beta-instructions-retrieving-files-attached-via-api-limited-trial-feature/](https://articles.alpha.canada.ca/forms-formulaires/files-attachments/). Files are linked directly within responses (retrieval from AWS) and are accompanied by an attribute that shows whether scanning for malicious files detected any potential harm, with basic antivirus technology. Be careful when opening any attachments: choose a secure location, follow security guidelines, and run host-level sensors if possible. The safety of files cannot be guaranteed, as no software is perfect at detecting threats. From 56ac98e2fb94612cd5fa1e146216a519746f907a Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:57:12 -0500 Subject: [PATCH 437/440] Update file retrieval instructions in French documentation --- docs/_pages/fr/effectuer-des-demandes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index b9db7901..86353fef 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -132,7 +132,7 @@ La sécurité du système est primordiale et elle est renforcée par le chiffrem ### Obtenir les fichiers joints aux soumissions de formulaires -La récupération des fichiers joints aux soumissions n'est possible que via la méthode de livraison des données par l'entremise de l'API. Les conditions de stockage sont les mêmes que pour les données soumises, Formulaires GC ne conserve les données et les fichiers que temporairement, jusqu'à leur téléchargement et leur confirmation. Pour en savoir plus sur l'ajout d'éléments de téléversement de fichiers à votre formulaire, consultez notre [guide de référence](https://articles.alpha.canada.ca/forms-formulaires/fr/recuperation-via-api-de-fichiers-joints-beta-fonctionnalite-a-lessai/). +La récupération des fichiers joints aux soumissions n'est possible que via la méthode de livraison des données par l'entremise de l'API. Les conditions de stockage sont les mêmes que pour les données soumises, Formulaires GC ne conserve les données et les fichiers que temporairement, jusqu'à leur téléchargement et leur confirmation. Pour en savoir plus sur l'ajout d'éléments de téléversement de fichiers à votre formulaire, consultez notre [guide de référence](https://articles.alpha.canada.ca/forms-formulaires/fr/fichiers-joints/). Les fichiers sont directement liés aux réponses (récupérées de AWS) et ils sont accompagnés d'un attribut indiquant si l'analyse des fichiers malveillants a détecté un danger potentiel à l'aide de technologie antivirus de base. Soyez prudent lorsque vous ouvrez n'importe quelle pièces jointes : choisissez un emplacement sécurisé, suivez les consignes de sécurité, et exécutez des capteurs au niveau de l'hôte si possible. La sécurité des fichiers ne peut être garantie, car aucune technologie n'est parfaite pour détecter les menaces. From 5447a260e65ddcbee1bd5fd63bb20e5c32fcfc8d Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:57:45 -0500 Subject: [PATCH 438/440] Fix link formatting in making-requests.md --- docs/_pages/en/making-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index 8aa530cd..ff3f891e 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -136,7 +136,7 @@ Security of the system is paramount and it is enhanced by encrypting form submis ### Getting files that were attached to form submissions securely -The retrieval of files attached within submissions is only possible via the API data delivery method. The same storage conditions apply as for submission data, where GC Forms only temporarily keeps data and files until downloaded and confirmed. To learn more about adding a file upload element to your form, consult our [Guidance page]([https://articles.alpha.canada.ca/forms-formulaires/beta-instructions-retrieving-files-attached-via-api-limited-trial-feature/](https://articles.alpha.canada.ca/forms-formulaires/files-attachments/). +The retrieval of files attached within submissions is only possible via the API data delivery method. The same storage conditions apply as for submission data, where GC Forms only temporarily keeps data and files until downloaded and confirmed. To learn more about adding a file upload element to your form, consult our [Guidance page](https://articles.alpha.canada.ca/forms-formulaires/files-attachments/). Files are linked directly within responses (retrieval from AWS) and are accompanied by an attribute that shows whether scanning for malicious files detected any potential harm, with basic antivirus technology. Be careful when opening any attachments: choose a secure location, follow security guidelines, and run host-level sensors if possible. The safety of files cannot be guaranteed, as no software is perfect at detecting threats. From 6c173d2f9caafe0378b50e416f689089ef0ae662 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Mon, 22 Dec 2025 08:24:58 -0500 Subject: [PATCH 439/440] Add note about timezone based on beta user feedback (#271) * Add note about timezone based on beta user feedback Added a note about the timestamp being in UTC. * Update notes in FR for timestamp --- docs/_pages/en/making-requests.md | 2 ++ docs/_pages/fr/effectuer-des-demandes.md | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/_pages/en/making-requests.md b/docs/_pages/en/making-requests.md index ff3f891e..eb89c22e 100644 --- a/docs/_pages/en/making-requests.md +++ b/docs/_pages/en/making-requests.md @@ -83,6 +83,8 @@ GET /forms/{formID}/submission/new </tr> </table> +> _Note: The timestamp is in Coordinated Universal Time (UTC)._ + ### Retrieving **specific** form submissions #### Getting the form submission diff --git a/docs/_pages/fr/effectuer-des-demandes.md b/docs/_pages/fr/effectuer-des-demandes.md index 86353fef..4cf81e03 100644 --- a/docs/_pages/fr/effectuer-des-demandes.md +++ b/docs/_pages/fr/effectuer-des-demandes.md @@ -48,7 +48,7 @@ Ce chemin d’URL renvoie une liste de soumissions qui comprend les 100 plus anc GET /forms/{formID}/submission/new </code> -> _Remarque : Le statut de ces soumissions de formulaire ne passera pas à « Téléchargé »._ +> _À noter : Le statut de ces soumissions de formulaire ne passera pas à « Téléchargé »._ ##### Statut de la réponse @@ -80,6 +80,8 @@ GET /forms/{formID}/submission/new </tr> </table> +> _À noter : L'horodatage est en temps universel coordonné (TUC)._ + ### Récupérer des soumissions de formulaires **spécifiques** #### Obtenir la soumission du formulaire From ccb8bb96e19e7903bf93c3bc665b1dd9387c29a5 Mon Sep 17 00:00:00 2001 From: Anik Brazeau <38330843+anikbrazeau@users.noreply.github.com> Date: Tue, 23 Dec 2025 08:15:45 -0500 Subject: [PATCH 440/440] Update homepage tag line version to 1.7.1 --- docs/_data/translations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_data/translations.yml b/docs/_data/translations.yml index 660bb622..80dc4051 100644 --- a/docs/_data/translations.yml +++ b/docs/_data/translations.yml @@ -1,5 +1,5 @@ en: - homepage-tag-line: "Version 1.7.0" + homepage-tag-line: "Version 1.7.1" cds-snc: "GC Forms" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/" hosting: "Hosted on" @@ -10,7 +10,7 @@ en: homepage-slug: "/home/" site-name: "GC Forms — Data retrieval API" fr: - homepage-tag-line: "Version 1.7.0" + homepage-tag-line: "Version 1.7.1" cds-snc: "Formulaires GC" cds-snc-url: "https://articles.alpha.canada.ca/forms-formulaires/fr/" hosting: "Hébergé dans"