Commit 0e9ad22

mo <mo@mokhan.ca>
2018-10-29 01:12:59
add scim schemas docs
1 parent b62b39e
doc/_includes/curl.erb
@@ -9,28 +9,20 @@ $ curl <%= interaction['request']['uri'] %> \
   -d '<%= interaction['request']['body']['string'] %>' \
   <%= headers.join(" \\\n  ") %>
 ```
-Request Headers:
-<% headers = interaction['request']['headers'].map { |(key, value)| "#{key}: #{value[0]}" } %>
+Request:
 ```text
-<%= headers.join("\n") %>
+<%= interaction['request']['headers'].map { |(key, value)| "#{key}: #{value[0]}" }.join("\n") %>
 ```
-<% json = JSON.parse(interaction['request']['body']['string']) rescue {} %>
-<% if json.present? %>
-Request Body:
 ```json
-<%= JSON.pretty_generate(json) %>
+<%= JSON.pretty_generate(JSON.parse(interaction['request']['body']['string'])) rescue nil %>
 ```
-<% end %>
-Response Headers:
-<% headers = interaction['response']['headers'].map { |(key, value)| "#{key}: #{value[0]}" } %>
+Response:
 ```text
-<%= headers.join("\n") %>
+<%= interaction['response']['status']['code'] %> <%= interaction['response']['status']['message'] %>
+
+<%= interaction['response']['headers'].map { |(key, value)| "#{key}: #{value[0]}" }.join("\n") %>
 ```
-<% json = JSON.parse(interaction['response']['body']['string']) rescue {} %>
-<% if json.present? %>
-Response Body:
 ```json
-<%= JSON.pretty_generate(json) %>
+<%= JSON.pretty_generate(JSON.parse(interaction['response']['body']['string'])) rescue nil %>
 ```
 <% end %>
-<% end %>
doc/_includes/get-well-known-oauth-authorization-server.html
@@ -12,34 +12,26 @@ $ curl http://localhost:5000/.well-known/oauth-authorization-server \
   -H "User-Agent: net/hippie 0.1.9" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
+```json
 
-
-Response Headers:
-
+```
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Content-Type: application/json; charset=utf-8
 Etag: W/"7f1eee6ebfc3008c58d630548ed1707c"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: 08bf72b9-0883-4214-b7a6-ceb414964790
+X-Request-Id: 8ecded39-c4fe-49fd-88a3-b3b50b678ab4
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
   "issuer": "http://localhost:5000/",
@@ -72,4 +64,3 @@ Response Body:
 }
 ```
 
-
doc/_includes/oauth-dynamic-client-registration.html
@@ -6,63 +6,50 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/clients \
   -X POST \
-  -d '{"redirect_uris":["https://millerspencer.com","https://lebsack.ca"],"client_name":"Jamey Parisian","token_endpoint_auth_method":"client_secret_basic","logo_uri":"https://corkeryskiles.com","jwks_uri":"https://becker.biz"}' \
+  -d '{"redirect_uris":["https://wunsch.biz","https://collier.name"],"client_name":"Emanuel Bergstrom","token_endpoint_auth_method":"client_secret_basic","logo_uri":"https://hodkiewicz.info","jwks_uri":"https://danielfisher.us"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "redirect_uris": [
-    "https://millerspencer.com",
-    "https://lebsack.ca"
+    "https://wunsch.biz",
+    "https://collier.name"
   ],
-  "client_name": "Jamey Parisian",
+  "client_name": "Emanuel Bergstrom",
   "token_endpoint_auth_method": "client_secret_basic",
-  "logo_uri": "https://corkeryskiles.com",
-  "jwks_uri": "https://becker.biz"
+  "logo_uri": "https://hodkiewicz.info",
+  "jwks_uri": "https://danielfisher.us"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+201 Created
+
 Cache-Control: no-cache, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-X-Request-Id: e127390c-abc8-4cd1-a181-98b76cf4176b
+X-Request-Id: f6c1e2ba-59f2-4c7b-a06f-080a17a1e65f
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
-  "client_id": "b84321b8-33ca-42cb-a455-14d9a10cac4b",
-  "client_secret": "8QPgFoE2b5LxkG9W51ShSniZ",
-  "client_id_issued_at": 1540771833,
+  "client_id": "4fc7bdcc-d2cc-4ec2-8b06-3c8ce033eb3d",
+  "client_secret": "VK6uUsqiy9ThfbCRCKZrWpen",
+  "client_id_issued_at": 1540775532,
   "client_secret_expires_at": 0,
   "redirect_uris": [
-    "https://millerspencer.com",
-    "https://lebsack.ca"
+    "https://wunsch.biz",
+    "https://collier.name"
   ],
   "grant_types": [
     "authorization_code",
@@ -71,11 +58,10 @@ Response Body:
     "password",
     "urn:ietf:params:oauth:grant-type:saml2-bearer"
   ],
-  "client_name": "Jamey Parisian",
+  "client_name": "Emanuel Bergstrom",
   "token_endpoint_auth_method": "client_secret_basic",
-  "logo_uri": "https://corkeryskiles.com",
-  "jwks_uri": "https://becker.biz"
+  "logo_uri": "https://hodkiewicz.info",
+  "jwks_uri": "https://danielfisher.us"
 }
 ```
 
-
doc/_includes/oauth-token-introspection.html
@@ -6,53 +6,39 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens/introspect \
   -X POST \
-  -d '{"token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzQsImlhdCI6MTU0MDc3MTgzNCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3MTgzNCwiYXVkIjoiMGUxYjA3ZjYtZDExYi00YjljLWExYWEtNmE4YTIzNDNkZGEzIiwianRpIjoiZGZhMDQ4OWEtOGU1NS00ZTU0LWEwZWMtODZiZGQxOWUyNjI4Iiwic3ViIjoiMTJhMDIzY2ItMjgxYy00OGZiLWEwMWUtMWQwOGQzMzAyYThkIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.rGx6eW_IdNeciarkKGxNMT6JNCIgAIFdSsurATaSTY3IOUKwV9tWbVGuqQHotU4uQ-LYZwGdI8An0WGRveD1x1nNTqByZoXh5HH-m7FLkwqyrMThaLNJMWPuEKmvwWZik0ZKVQWVHHCvOx3qbJpJkfzoOCteQAT7tlScTHBjovtWf9TfqHQlTnzOSUOCILlQS3nJXp1iStXj0JBXyXdRvrBxEsSr2za-G6ECA_fignEvqkzFp4V0k6cIOp-WClx-TLBW2LZa6JDauVK8b9av0Dw-ko6-EXfHSl8o8JvaXVDgcZg7CpvjVUdXeOM6n6hyp4GONALZZaTDJUINvnw31A"}' \
+  -d '{"token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzMsImlhdCI6MTU0MDc3NTUzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NTUzMywiYXVkIjoiODVlNDIwN2MtOTA4Yy00MjhlLWE4YjQtYjhmZWY4N2Y4MjRlIiwianRpIjoiOTFmYjA4ZmMtN2FkYS00NGQxLThmMmMtMWQ4Njk3NDJiOTdlIiwic3ViIjoiNzQwNjgwZmEtNDY3My00M2QyLThhMDQtNGU5ZTJhNzlhMTNkIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.KxSsKMFJfSV8r5XYHmsnzZQTR7u61_dSx4FP9KazLzxT540nGZp7HUE44HYx-rDZJo9hl9eIV1jKWjdUoLbjyyjDEysmopOLcKZ0m8aSR16EdjGdQ5GkX0EG_g2u7jqg5GIvRqptWY5vM9qNXJCW1jI0SWFzmCLuaQP_Xlr87bvZaIoYf-JvGag0D34pdrlwUZPF-NpCt8tjg5ASBNvFw7AdIA8Ll6Oc2euTk8Vb_6HJZ3vfkZn3bo_ngBeZ1dA9YHZDdXZgghZDS7ut37bOuDAYPFpAL7sTN_cgdq84POVC1wpny8t7acvBu0NsHNjUEBrUti9zZtCl5ILaZ8AFFw"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic NDQxZTZjODgtNWFiOC00ZGM2LTg3MTktOTQ3YWIyZTJhNzdhOnJLeEZrNm9uYkdma0pMUVNFN0hzWU42VQ==" \
+  -H "Authorization: Basic ODU4NzU2MjYtMmJmYi00NThkLWJlMDYtNGI3YzQ0ZTQzNWVjOmgxNWJ6a1Y2VURQZnJ6eVVBWWg0Uk16Yw==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic NDQxZTZjODgtNWFiOC00ZGM2LTg3MTktOTQ3YWIyZTJhNzdhOnJLeEZrNm9uYkdma0pMUVNFN0hzWU42VQ==
+Authorization: Basic ODU4NzU2MjYtMmJmYi00NThkLWJlMDYtNGI3YzQ0ZTQzNWVjOmgxNWJ6a1Y2VURQZnJ6eVVBWWg0Uk16Yw==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
-  "token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzQsImlhdCI6MTU0MDc3MTgzNCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3MTgzNCwiYXVkIjoiMGUxYjA3ZjYtZDExYi00YjljLWExYWEtNmE4YTIzNDNkZGEzIiwianRpIjoiZGZhMDQ4OWEtOGU1NS00ZTU0LWEwZWMtODZiZGQxOWUyNjI4Iiwic3ViIjoiMTJhMDIzY2ItMjgxYy00OGZiLWEwMWUtMWQwOGQzMzAyYThkIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.rGx6eW_IdNeciarkKGxNMT6JNCIgAIFdSsurATaSTY3IOUKwV9tWbVGuqQHotU4uQ-LYZwGdI8An0WGRveD1x1nNTqByZoXh5HH-m7FLkwqyrMThaLNJMWPuEKmvwWZik0ZKVQWVHHCvOx3qbJpJkfzoOCteQAT7tlScTHBjovtWf9TfqHQlTnzOSUOCILlQS3nJXp1iStXj0JBXyXdRvrBxEsSr2za-G6ECA_fignEvqkzFp4V0k6cIOp-WClx-TLBW2LZa6JDauVK8b9av0Dw-ko6-EXfHSl8o8JvaXVDgcZg7CpvjVUdXeOM6n6hyp4GONALZZaTDJUINvnw31A"
+  "token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzMsImlhdCI6MTU0MDc3NTUzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NTUzMywiYXVkIjoiODVlNDIwN2MtOTA4Yy00MjhlLWE4YjQtYjhmZWY4N2Y4MjRlIiwianRpIjoiOTFmYjA4ZmMtN2FkYS00NGQxLThmMmMtMWQ4Njk3NDJiOTdlIiwic3ViIjoiNzQwNjgwZmEtNDY3My00M2QyLThhMDQtNGU5ZTJhNzlhMTNkIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.KxSsKMFJfSV8r5XYHmsnzZQTR7u61_dSx4FP9KazLzxT540nGZp7HUE44HYx-rDZJo9hl9eIV1jKWjdUoLbjyyjDEysmopOLcKZ0m8aSR16EdjGdQ5GkX0EG_g2u7jqg5GIvRqptWY5vM9qNXJCW1jI0SWFzmCLuaQP_Xlr87bvZaIoYf-JvGag0D34pdrlwUZPF-NpCt8tjg5ASBNvFw7AdIA8Ll6Oc2euTk8Vb_6HJZ3vfkZn3bo_ngBeZ1dA9YHZDdXZgghZDS7ut37bOuDAYPFpAL7sTN_cgdq84POVC1wpny8t7acvBu0NsHNjUEBrUti9zZtCl5ILaZ8AFFw"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Content-Type: application/json; charset=utf-8
 Etag: W/"78b558bd2357fbe7ad52804fb3af1b86"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: d799843f-0f1c-400a-9f3b-6ff0231490c0
+X-Request-Id: 4b2f8eb7-c66c-49a7-b1e9-921b6f00c8d1
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
   "active": false
 }
 ```
 
-
doc/_includes/oauth-tokens-authorization-code.html
@@ -6,58 +6,44 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"authorization_code","code":"bJZDp8pdR98JjsZLvx2Qmqre"}' \
+  -d '{"grant_type":"authorization_code","code":"BAcU4UuTVCZnQZP93PsVw24s"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic MzFkYmIzNzAtZWI0Mi00ZjhhLTg1ZTItYzFjMTdkZjUxMTFjOkJid2tmR2NteXRSQzdNNHNBdnhRSnA4eQ==" \
+  -H "Authorization: Basic Y2UyODYzNTMtZWUwZC00NmM3LTgzYjMtYmQyOTU0OWQ0NmM3OnFrTHVEWURBWGIyZktlbXNMaWU3OFZvUQ==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic MzFkYmIzNzAtZWI0Mi00ZjhhLTg1ZTItYzFjMTdkZjUxMTFjOkJid2tmR2NteXRSQzdNNHNBdnhRSnA4eQ==
+Authorization: Basic Y2UyODYzNTMtZWUwZC00NmM3LTgzYjMtYmQyOTU0OWQ0NmM3OnFrTHVEWURBWGIyZktlbXNMaWU3OFZvUQ==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "grant_type": "authorization_code",
-  "code": "bJZDp8pdR98JjsZLvx2Qmqre"
+  "code": "BAcU4UuTVCZnQZP93PsVw24s"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"72d9b08e26785d20f3735783e4fdfabd"
-X-Request-Id: d80da500-e65c-402e-992e-f128e39343c6
+Etag: W/"9d6d6cb1837e6b365bc08343f13a25f0"
+X-Request-Id: f1536432-60d5-45ad-8a92-21db3ae5938c
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzIsImlhdCI6MTU0MDc3MTgzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzIsImF1ZCI6IjMxZGJiMzcwLWViNDItNGY4YS04NWUyLWMxYzE3ZGY1MTExYyIsImp0aSI6ImIxOTFjYzBkLWM3MmItNDFkNS04ZGE5LWYxY2JiNDQyNzc2ZiIsInN1YiI6IjViM2ZmMDZjLTQxYTAtNDdiYS1hYjE5LWFkYzA5NmRlZmY1ZiIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.IMMalCiU_FgXQNFZ6FqB9ySzgm54r-ZjL5DxLrF_uTmZSOH3DRWWN4IwcPhu3SCY4HqT04mTjo0aGffpp7iFAB1eNa2uRR1cTjiPbI0fTDomzL-KfPl8MlRkvM79n9ZMF_JHEomq3s-9dkZDKHFXjeTqaBXfOr3FV9BOVLHxdx0HIHQ_YpsugSlri6ymrXs0IcMlv83hbBb6u_7ouvHVNfSnjy3seiTlmTkysTEDYgArCpRjVieMZwdiXGAD2cpH1ZlT2iAMvi-QYeNcaRjvm4xhfb15ZfcUa9_DgHPeZfxeF9ZIVhdfCQuYok6lo6xeqYCVCMcLEq6CaGf8PonNqw",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzEsImlhdCI6MTU0MDc3NTUzMSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzEsImF1ZCI6ImNlMjg2MzUzLWVlMGQtNDZjNy04M2IzLWJkMjk1NDlkNDZjNyIsImp0aSI6IjQ1NDE0NDg0LWFlZDYtNGMxNy04NmZkLTU1OWZhYWNhOWRjYiIsInN1YiI6IjIzNmVlOTc5LTJiMzMtNGQyYS1hOTJlLWFmMDljYjIzYjgwYSIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.Zon-WW4sZDOj0whgMEBshm72r2hYffhAUY2UPmj-gz72RAhr1xZ_tlAQzKuXEVMXy1P4A-o3B6_FGoj2uyhacJnRfzWG0PH5JRicZBT8pYJ2lQwrSAwFcwYtvaeyOrpmfn3gvkv5NLeMYOm8NlxgazLtOX4UyELdUOFHKb8grk3Ij2Tv4CrylW2DCq9YxaLI0gOH2A3gJKN6jPvFbW9qOzyQmnY1bfRWzWBFl1AOs_NKhoFMuK9kupXdNaiqbrk3sVF12YWVzxhM7MQoiYw01huhpKQU4NzpruTcr5SRvrJ9428fQ9NR57sgrKxND3wDA8NV-YGdbq0jLIeIL0l8fQ",
   "token_type": "Bearer",
   "expires_in": 3600,
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NTgyMzIsImlhdCI6MTU0MDc3MTgzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzIsImF1ZCI6IjMxZGJiMzcwLWViNDItNGY4YS04NWUyLWMxYzE3ZGY1MTExYyIsImp0aSI6IjE4NTIxMTIxLTJiMTItNGUyNS04N2VkLTI3NWI3MTcyNWUyMCIsInN1YiI6IjViM2ZmMDZjLTQxYTAtNDdiYS1hYjE5LWFkYzA5NmRlZmY1ZiIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.gFqWpPH4XgpI4cBCbNWyaBNGhxrE2zhQUn7mir9SwrzNSl5rnq9ep5j48SwDNMdY1oh5zNCdJCsPAeGwHpvvjdQCAJYWfbz8AAvpAivxDgv7FeIjamS5ucwh6Wc6uOlbdYUT6JOhiKBCMsmceIxfnr12QcxrZqe0GkHaOlpA1C-LiEuEa4zIKlnkq-FD2f5Xsd8bCZp0lPtI8QoACPNMvbftHdpfP-tV7v14r29jCT-5baTpEy6V_JwaRwI-EQymPpQTG4BgKnTPxZuIGCqxh7IuUc3bih7LTLO4vVoa5S6P9kBNunXFDw_uyBOoRAf2JcBdRbms9qhSbsEmNjuPZQ"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjE5MzEsImlhdCI6MTU0MDc3NTUzMSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzEsImF1ZCI6ImNlMjg2MzUzLWVlMGQtNDZjNy04M2IzLWJkMjk1NDlkNDZjNyIsImp0aSI6ImE0OTBkNjg1LWJiYTktNDU4ZS1hNmQ1LTFmOTY1YTUwZWY1OSIsInN1YiI6IjIzNmVlOTc5LTJiMzMtNGQyYS1hOTJlLWFmMDljYjIzYjgwYSIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.v2lpPb7R8ASu7ttXBFPQo-x7f2kvbZwKkn32QeSQsKD_jGeZpHnRKOCbU4KJmeN6XlcB7snmeYwIrjnqLCemABUq9vc_28le2bE7oCrqZG-C2R2vUkHesoEeh6sCJkijUOFe-hsiABSRuXQUKHYL8e4GiAjQFI1_jgcNJS4WdgSYPrzlBIEhcf1GIE7TW8Bw8cprV0LlHKqJ7VHYakPGepaAS57UrHNZw8M6S48bVS_SJXSySnjzF11CyDG_gZ7E9_KOmfI3dUq62SXaiY7w4sEw_7yh9llU7130t_sffeC3D_lZjQnwhqDEcmG29Jedbx7Ao1KQSDRDu0vWVp-Vkg"
 }
 ```
 
-
doc/_includes/oauth-tokens-client-credentials.html
@@ -10,52 +10,38 @@ $ curl http://localhost:5000/oauth/tokens \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic YmMwMTg1N2ItODY1NC00MjFmLThhMDQtZDU1MzJmYTRhMTljOnRwTFBoM2VkZnh4aDREMnJDcXdGbWFRVw==" \
+  -H "Authorization: Basic ODUyYWU0NGYtZDc4MC00MDlkLWJjMWItYzQ2OWQ3YWZmOWExOmszYW1YTHJmMzdRWHp2TDFEcEhaODFWag==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic YmMwMTg1N2ItODY1NC00MjFmLThhMDQtZDU1MzJmYTRhMTljOnRwTFBoM2VkZnh4aDREMnJDcXdGbWFRVw==
+Authorization: Basic ODUyYWU0NGYtZDc4MC00MDlkLWJjMWItYzQ2OWQ3YWZmOWExOmszYW1YTHJmMzdRWHp2TDFEcEhaODFWag==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "grant_type": "client_credentials"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"33541a645715a2f8901de1f74434d677"
-X-Request-Id: 46b0811a-e572-4226-831d-08d8ba4b1541
+Etag: W/"50ef580a13b3b43feb56bed1d1d3a0f7"
+X-Request-Id: 3673c2c2-1c62-439b-9eaf-dbc910e1fd82
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzMsImlhdCI6MTU0MDc3MTgzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzMsImF1ZCI6ImJjMDE4NTdiLTg2NTQtNDIxZi04YTA0LWQ1NTMyZmE0YTE5YyIsImp0aSI6ImM5ZGYxNDAzLTNhZDItNGI3OC05ODgwLWI4NmE1MTkyZTdlZCIsInN1YiI6ImJjMDE4NTdiLTg2NTQtNDIxZi04YTA0LWQ1NTMyZmE0YTE5YyIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.IkG-A3WeB7RNTLVzVbOBB-sD1dOqpiT7DRo-ech7xWj0ABOdoGMoBW_GYtzNO5pN7xBUvZU6pnd5Fs2uAe2oImB4irPg4zS_4h3WEMw1xP4k-suRk0WSxKU_OxrmgOoqsg40d7T5eeJ3Xir3UdO_oNdT5Zr8vuwc2dVhwV1GwITFgfuCYPPv1c8PN4i6z3a_EPZmTHaXTcK1YHkO1Ir5R2Vw16e5njcAKlI_ldHjmh7U4rz161rcVhAojQ8S-3tjB1E0qcjKELdjaIDElQ0gvSkRBA87ppog_bt1_C4wnH2IYKzsqr4wl6jwxvEpGvIb42FMXsE6IEOq6RaJfW0yOA",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzIsImlhdCI6MTU0MDc3NTUzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzIsImF1ZCI6Ijg1MmFlNDRmLWQ3ODAtNDA5ZC1iYzFiLWM0NjlkN2FmZjlhMSIsImp0aSI6IjhmMzAwMDdlLTI5MGMtNDQ4NC1hN2JmLTgxZWFiOTI4MjkwNSIsInN1YiI6Ijg1MmFlNDRmLWQ3ODAtNDA5ZC1iYzFiLWM0NjlkN2FmZjlhMSIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.s7ZgHhWBeQEO5mrOREzdy4sERPyc9WjlKbd1fVmrw2fZ-fG19ZHS7X2IdDpQLtgGNEeVWp4Xek5G90E4Qo4eSQyzvEqtzJjBubEEOQNOT45Wqerr6LtEMzXql6gyT54VO-XIvwChLEw5JtTtjZuPukNBvlZGq8q_7yuGs0gNYyX8RCo08KRJGGkA446jx__0-N3MtO9DAle_3iYxbAgvfz1sZmPgHGJ2r3rxTW4XdP75aXJWs1Jx5k_Mi2EiZnHG_w6eyIw8pDCJQGsLbA23FqjQlOHCjZ-Cb8zSSNsV8Fv-J8yYzdBBeAHs5oRTm2ZhwIGad5sRsRLnANyAiVgreg",
   "token_type": "Bearer",
   "expires_in": 3600
 }
 ```
 
-
doc/_includes/oauth-tokens-password.html
@@ -6,59 +6,45 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"password","username":"shakia@stracke.us","password":"qrMGikICW"}' \
+  -d '{"grant_type":"password","username":"jess.bruen@runte.name","password":"JAi6zZlL"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic MmY3Y2QzNWQtZDc4NC00NGE0LWIxM2YtOWQ3ZWNiOGMwNzllOnd5ZnpwMWZyRkdvSmdpNXVTdVdVblMxcA==" \
+  -H "Authorization: Basic YzIxY2EzZmQtMjAwYi00MWU4LWIxN2QtMTVlNDk5ZDUxMDEwOjl1N0J2bTl0SnFXVHBqeFFwZzFrRkhHdw==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic MmY3Y2QzNWQtZDc4NC00NGE0LWIxM2YtOWQ3ZWNiOGMwNzllOnd5ZnpwMWZyRkdvSmdpNXVTdVdVblMxcA==
+Authorization: Basic YzIxY2EzZmQtMjAwYi00MWU4LWIxN2QtMTVlNDk5ZDUxMDEwOjl1N0J2bTl0SnFXVHBqeFFwZzFrRkhHdw==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "grant_type": "password",
-  "username": "shakia@stracke.us",
-  "password": "qrMGikICW"
+  "username": "jess.bruen@runte.name",
+  "password": "JAi6zZlL"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"516f7b61c8618ad181642380766549b5"
-X-Request-Id: 63b59fed-8be8-4ac8-bee6-ba3dc6746611
+Etag: W/"1e74b3a8dcd22da9a99240bdd5b8ca01"
+X-Request-Id: e8b623d9-3ec0-42e6-b75f-fc1aeaacf68f
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzIsImlhdCI6MTU0MDc3MTgzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzIsImF1ZCI6IjJmN2NkMzVkLWQ3ODQtNDRhNC1iMTNmLTlkN2VjYjhjMDc5ZSIsImp0aSI6IjdhMmI3YzFlLWQ5ZjktNGViYS04ZTcyLTliNDNmM2E1OWNhNSIsInN1YiI6IjFhOTdkN2I4LTUxNzgtNDYzMS04NWE0LWI2OWRlNWIyOGQ1YyIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.RkP60SR1XLy5J5ixYvpd8X7RzhpUAvv8PoycWSgPwGbb2YEGdiJz854-Ck7GCrSsEEZskyA5gOQJQIyHerQ3WzHn4YXhaJ34tYc3_xZtF6g28XS69oZ6dLiMlQHjW6XtruAQmAHrWhHWhnniNctF3RzpymEuHPR8Kb00zDLQW7cSUibmM386ch5QrF7z5UlSLPoeQp9N0hDpsuOV4-zkpPWcy6NaSKlVHtUnYtsGOQFqjexLmYxjRJsn_EUw2ZjtTqhZyu498WB8CnIx9NbzrX_6EGbuf-v4bIGHAFXC3ORoZPwEolQTchOli482ioRb3FMG_n54zMYkYM2Eb84wcg",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzEsImlhdCI6MTU0MDc3NTUzMSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzEsImF1ZCI6ImMyMWNhM2ZkLTIwMGItNDFlOC1iMTdkLTE1ZTQ5OWQ1MTAxMCIsImp0aSI6IjIzNGFkYWFiLTEwZTAtNGMyYS04ZGVhLTY2MDFkNGIwOGE0NyIsInN1YiI6ImZhNTVjZjI1LTczYTctNDk0My1iNzM2LTgyYzkyMGUxOWIxYiIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.fdtnO1IVTqT-Y5dvY8b6WaVdwXbzOWEaWTUyWFcAl-T0rAXLP_7dwn7A02_J4Q_DjizNtXZH_otTJZSFNPVnVMmHue4BdrgMFLjtC5F1XnxUbBq7YcXwBuQuRKD987cTIotxhX2RNsW2A4SViGMxAdZXUP5zaeTajeXvw3Lo-DbNYBX9JzOs_C3PYzxW5bqW3KpeAim2DZbPxrHoskfZOt9IkdJEivHZbAkZPS_FZDdwhRZ4D2h20HAcdzdeAXAVzvuEfuWk2ykL1lhvp88FtWEHkN0dRx2ve4Oen1Va8oaXh-6TTI1Jds5zMnjl4LRcqZ5QU6fFhwkWkorcWSVIOw",
   "token_type": "Bearer",
   "expires_in": 3600,
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NTgyMzIsImlhdCI6MTU0MDc3MTgzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzIsImF1ZCI6IjJmN2NkMzVkLWQ3ODQtNDRhNC1iMTNmLTlkN2VjYjhjMDc5ZSIsImp0aSI6ImM2YTMwZWI5LWUyMDQtNDA5Yi05M2U3LTNlMTE4NzE3YTgzMyIsInN1YiI6IjFhOTdkN2I4LTUxNzgtNDYzMS04NWE0LWI2OWRlNWIyOGQ1YyIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.Q7xmlaWoZmghJzHxAn1WzlMs7PlAmvkFYdgbJ8EEOUM3jy5DL50KrXXEWn4nzsQCVH4My1AQMTfuqaULW1Ekg7wqG2oJWV5byupSlnmLK1xkzmXkL3eQQU-pmwY5Mut6ddGgUbj7dhimV3-2nqmQKPe81L9-DKCkfjLRgOJqv4PQkhQKz2qknq3oGjNMt0CXwLdI1I7YOJGB7LJ4T7QpAAb0rIfdwGNremsmhwYx9EaW2fT93-UUP7lkrOPeE4z_h6uQyap4me0d0dYcF47VAQGDr9u-80Wu6cZApWPIO-nnvYjxCRQUdWYHKN4rV7Vi2USC8NEfVMoHnROObKXu3A"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjE5MzIsImlhdCI6MTU0MDc3NTUzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzIsImF1ZCI6ImMyMWNhM2ZkLTIwMGItNDFlOC1iMTdkLTE1ZTQ5OWQ1MTAxMCIsImp0aSI6IjAyNTAwODc2LTJkNDEtNGRkYi04OTdiLTJiZmMxOWRkYmJlNyIsInN1YiI6ImZhNTVjZjI1LTczYTctNDk0My1iNzM2LTgyYzkyMGUxOWIxYiIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.eVyuyxiDdu_kcg5wulqaqhF_HjI3Odnqzha3quRAwzBjPJRMH79JVv6XdeMLBm0I72vyhrZRYjxnv6_eWjZ6imJMko59h3OjbOOHTtw0cGV3Z6zTap12QGQVWMJzHunpHmufu_C7iJpkVtvcsnNlZkGciGOVVZ8VEGLkRGc06HYbD1uGZeqE0Mtupd5M6Pko5mxX4trswQbW3hWNqFxPrHC3a-y7gFBk9Xy73NQY9kibjnsmOzsbyK7Ftr-2pQ2Q_thXL5czR-ut2dVzOi_x8-C29UmFGYVGzgVy3ZDTKEDp-LCSxsjRZKHcWLuOdOnAdDEVBn48PEowW_GIJFsRQg"
 }
 ```
 
-
doc/_includes/oauth-tokens-pkce.html
@@ -6,59 +6,45 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"authorization_code","code":"F7ZvTq5xDmwXUuiwCGB1Cazr","code_verifier":"0bbb49b4fc4ee55293480123d43da187a2cd9d70f47cd9f4653ac2914ce3531d81af10740996ffe4c186363ed1011348cdab65d783a2b27decd5b1525eef6faf4db15026c954cd0fcc4b5866a50606f985af81c7015dc94838087b97a9f46d2a70baabfa9087cab94fe95ea1c51ec0c113641d82bcfbd07290102e05f43866f9"}' \
+  -d '{"grant_type":"authorization_code","code":"MtWiLBh4fGjBw2GfyTup6QrK","code_verifier":"02c5905914ec521285bc61763a22558ab9ec3e0977b994d12a08f3fc86c2dbd7e4fa8c7d2bfb4a9ae3d01dc071dc623424aabe4b4f5599d4eb92bc288b73602477759a275c78b1ac4c6020966ff73fa48154c98247089f6aa242fb10ed477c9285adfd56e90bc6ce9456b99122a4d0491a0fad99da8d40babfd84d3912405831"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic NDYwMjhjM2EtMWQ5Yi00NTAzLWIyNmUtZGZkZDRkMTY1NDlhOkVWSzQySnZ0dDRldVdHR3YzMlFEc1RqVw==" \
+  -H "Authorization: Basic YTIwNTkxMjctZmZlNi00ZGUxLTkwZjUtMDhkZTIzNTcyODMxOjZNdFlIS0VUUlN6WXZxYVdRR2V4TEtKTQ==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic NDYwMjhjM2EtMWQ5Yi00NTAzLWIyNmUtZGZkZDRkMTY1NDlhOkVWSzQySnZ0dDRldVdHR3YzMlFEc1RqVw==
+Authorization: Basic YTIwNTkxMjctZmZlNi00ZGUxLTkwZjUtMDhkZTIzNTcyODMxOjZNdFlIS0VUUlN6WXZxYVdRR2V4TEtKTQ==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "grant_type": "authorization_code",
-  "code": "F7ZvTq5xDmwXUuiwCGB1Cazr",
-  "code_verifier": "0bbb49b4fc4ee55293480123d43da187a2cd9d70f47cd9f4653ac2914ce3531d81af10740996ffe4c186363ed1011348cdab65d783a2b27decd5b1525eef6faf4db15026c954cd0fcc4b5866a50606f985af81c7015dc94838087b97a9f46d2a70baabfa9087cab94fe95ea1c51ec0c113641d82bcfbd07290102e05f43866f9"
+  "code": "MtWiLBh4fGjBw2GfyTup6QrK",
+  "code_verifier": "02c5905914ec521285bc61763a22558ab9ec3e0977b994d12a08f3fc86c2dbd7e4fa8c7d2bfb4a9ae3d01dc071dc623424aabe4b4f5599d4eb92bc288b73602477759a275c78b1ac4c6020966ff73fa48154c98247089f6aa242fb10ed477c9285adfd56e90bc6ce9456b99122a4d0491a0fad99da8d40babfd84d3912405831"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"7230b35d05fc51e4470ddbfc91925802"
-X-Request-Id: 95368e0e-0e91-4835-ae68-d360c7589107
+Etag: W/"e4eb2157b2e51d531147c313ac9583c2"
+X-Request-Id: 7c001070-2b07-4dbd-8352-fc6880695fa5
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzQsImlhdCI6MTU0MDc3MTgzNCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzQsImF1ZCI6IjQ2MDI4YzNhLTFkOWItNDUwMy1iMjZlLWRmZGQ0ZDE2NTQ5YSIsImp0aSI6IjUyZjBiMGI3LTlhYzYtNDUxMC04NWNkLTZlODU0MTdmMzE1NCIsInN1YiI6ImM3NmE4NmUxLTZhNGMtNDJkOC1iNjhlLWJhNDJmNjgxODgzYyIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.XBnZYX-xA5M_waRzguIlrAEoTDFqrDTAoUDfTI9n1Q5rWSfhO91gPJA6sBYtYEKvLb13R06SP3Ufk8wJ3Yg3e3myfZLNtlrEJJHKJml98xGQpYpn3IxAjcU8UBt4xTi3P-QM_Pn4mnKjkZ8OgpLHzO2jk2-Y8dOxwm9Dgcs73RRUnJ317hjN46q-oa60ylRaWR_ZWt_4hiXcQ7VkwKZ9CVMeS1T8gebh1sRJSu0w4QIZH6qU8OAAkoelPT3eWzEGItBIGINs4QvngGawvIK4gNwI0Js7LMWv9IFLrGKRxiXBfnylpHeYXEle1tl1fZMEFBHHkkXTYHS5jrf9OTD7nQ",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzMsImlhdCI6MTU0MDc3NTUzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzMsImF1ZCI6ImEyMDU5MTI3LWZmZTYtNGRlMS05MGY1LTA4ZGUyMzU3MjgzMSIsImp0aSI6ImQwYmE4NDNhLThlYWYtNDYxNy04ZDNiLWQwYzI1ZThkNDc0OSIsInN1YiI6IjNjM2Y3OTVkLTI1MmMtNDc2Ni04YTk1LWIyYjVmYjk5M2VhZSIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.Omh0q5yoMi4BPu1tm2bM1WudKJjo6SAM5oqavJehu-rZy9rS6_GaOPNtgGzvKDIeHzuQbdL4PxNbUcb-Csni9AcQUf79DKMMgxp-aW3F3jm1lgufHA_4M-33sqh1v5O69Q0U_hgbdzdNNzf1GbWKbtBsyAf8zke3xYtI-WglCB_10kf7wxOPSzIVkziZ_4imXmVXzZeLeVxSCn25KliLxocEk2AUnKBdL3ddUTX1kQvUPQYShudIb7SSrBuUtDT7SKY1wn2DyxBi2M8LNvOtu8Kq3qqkHL7cMm9fDHjGq2pzNInpWn5NAlO_v_Gv0H8Yw55SK5jy03U_TeBtZTv-Bw",
   "token_type": "Bearer",
   "expires_in": 3600,
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NTgyMzQsImlhdCI6MTU0MDc3MTgzNCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzE4MzQsImF1ZCI6IjQ2MDI4YzNhLTFkOWItNDUwMy1iMjZlLWRmZGQ0ZDE2NTQ5YSIsImp0aSI6ImViNDdkM2Y1LTk0ZTgtNGU3MS1hYjMzLTc2Mzc0MmU1MjUzYSIsInN1YiI6ImM3NmE4NmUxLTZhNGMtNDJkOC1iNjhlLWJhNDJmNjgxODgzYyIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.lNEvTFEc7hs5pR6TxjDcOxyCOXMlNC6gQ6a2N1SbNbRwhSAYd0guslRsMza8GiAKqGhy3uhOm2STAeY2adfW3Z9MabE38mRABRvQMxW19asHz191iLrLeeFabfkI3wBDR7XKU0ZIMD6rU_doTsKzAWzfMuDLUtM4qkDrbn1xxVfFNL0Xg3VGy1OCfXycqQK3cII7z1-cSuj920CZcovL4NfRgugrpQEyKmFuaKUtiGC8vRQu6JsoEqhGK9c1-Ub8GdveTNxmzRRMQQBn78JjGswGdlvjde4TtwvwMZ4eGkCXcVADfyAvu6YfZEtq4YZHGyWZlx5GjGMgsZLQOT-oRw"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjE5MzMsImlhdCI6MTU0MDc3NTUzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzU1MzMsImF1ZCI6ImEyMDU5MTI3LWZmZTYtNGRlMS05MGY1LTA4ZGUyMzU3MjgzMSIsImp0aSI6IjljY2U4ZjE3LWM5NDQtNGMzZC05N2Q0LTZjNjE5NjhhMDdhYiIsInN1YiI6IjNjM2Y3OTVkLTI1MmMtNDc2Ni04YTk1LWIyYjVmYjk5M2VhZSIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.T_99huNpknGhke8laKci2rm09Z2hCW1-6AnBliBbsDbR2bGve8qJPsulKycYO5AxwwTt9RecgEfp4PSCMblshOxnIrYuKjQY8oKJG4vx842Yxc9AJT2yOlmIpjYw-39jk53DUAr4zns33iFAV8bzPIHf1bf1eNaHYcM_Baly8b_XsOJ-V1a9mpRfEGevrBJuBqpDtkExR4iaceT1IvGazJXsRrCxgvzLkGQQoUFWROd5LoLnqLm72MuhaCr8GFG8VLpZXixsR5DzK5mBWWVmr6wstcp-hgx2ZW0kcd-E3N2kCy6H3IVLi4Rjuyu71fLjXQU-7oTnkHtTfiEmgDnfSg"
 }
 ```
 
-
doc/_includes/oauth-tokens-refresh-token.html
@@ -6,54 +6,40 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"refresh_token","refresh_token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzMsImlhdCI6MTU0MDc3MTgzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3MTgzMywiYXVkIjoiZTkyZGU4NWMtNTRmNS00ZjZlLThlMDctNTk3Yjk2NzIxZTcxIiwianRpIjoiNThkNGMyNDYtY2E2OS00NGI4LWFlZGItYWQ1OTllMGFlZThmIiwic3ViIjoiNjdhNTdkYmUtZDBiNi00NTRmLWJkNDItM2RkZGRhZjI0NGU0IiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.fumbi37MVl7eBJynebuYc0M-y1ebboS_iRDmmOiM17QQlAfZwBwpGGEHgrs5S_8r3bEaJBhnOC37dQLDE0d0Wtr52vW848E1JuyOgi7_8zowuPck5R8CMqxo318xLlfWD7fZ5Tq8BQsOMoCbGVnBoCm-Au4PPeHonhBa7dwFQM-GobzRYGP5FqiKfqh9ofb6cRhp7WVRyc-aqbq_HgQAB9LVA5JeVLMvPvW0TN2ViUKhzbPGreiypbauhKGM5m_8AIZ57b6Afr05e0y4XDeW61xi_d3sr-K5pVYjObv3Rqf9G_xCb-zXV1G7N3PyWqaV4M7RslutJkinM2NKlUXENA"}' \
+  -d '{"grant_type":"refresh_token","refresh_token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzIsImlhdCI6MTU0MDc3NTUzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NTUzMiwiYXVkIjoiNmE3Yzc3M2YtZGI3Yi00YjJhLWI1NDMtYWNiYmEyMDA5ZjkxIiwianRpIjoiNzA0YzgwNTYtNDhmZi00ZDBhLThkZTctNGFkNzJlYTFjZmNkIiwic3ViIjoiM2RkMGJmMDQtMDcxNS00MjY3LThmNmYtOGYwNjMzNGUwYjJmIiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.ARkrFIb0-ZO6wpnzUTJeCQWqm2-6IRI2VoWith-W9iqbAW1U0Vd--QMHCZ2uAuDV_ktsV21AK3FAWFvNwDoAG8boKYoTl5CukoMaKwrWaOqDIIOuPkChS8ZQ8TXwg_nRztC2aY0WX72yOToWYu5F9BthOouljAsF40TDdk8wEwbil7b8hAc7scts7CJPTWVsC6vTtisLfrrj9eoI0Y4ZJt2WJPhdlqf7qxCMRihfe0ml1p4Jf-DTrHPRVTmg62La54zCb3o7nNf4LgoLvtI0p_sCEe9PNx6uTqonFzDcUIlbbjb8ixGW_uFzIknd_9GXeo7SKhDFnuOv03UPKCDqyw"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic ZTkyZGU4NWMtNTRmNS00ZjZlLThlMDctNTk3Yjk2NzIxZTcxOlZUNktnWDV0azlkVW1yVllhOHdLOVhnWA==" \
+  -H "Authorization: Basic NmE3Yzc3M2YtZGI3Yi00YjJhLWI1NDMtYWNiYmEyMDA5ZjkxOjRuM3FIamRLdHFEcFg4bXhDVVFZaDZxMg==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic ZTkyZGU4NWMtNTRmNS00ZjZlLThlMDctNTk3Yjk2NzIxZTcxOlZUNktnWDV0azlkVW1yVllhOHdLOVhnWA==
+Authorization: Basic NmE3Yzc3M2YtZGI3Yi00YjJhLWI1NDMtYWNiYmEyMDA5ZjkxOjRuM3FIamRLdHFEcFg4bXhDVVFZaDZxMg==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "grant_type": "refresh_token",
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzU0MzMsImlhdCI6MTU0MDc3MTgzMywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3MTgzMywiYXVkIjoiZTkyZGU4NWMtNTRmNS00ZjZlLThlMDctNTk3Yjk2NzIxZTcxIiwianRpIjoiNThkNGMyNDYtY2E2OS00NGI4LWFlZGItYWQ1OTllMGFlZThmIiwic3ViIjoiNjdhNTdkYmUtZDBiNi00NTRmLWJkNDItM2RkZGRhZjI0NGU0IiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.fumbi37MVl7eBJynebuYc0M-y1ebboS_iRDmmOiM17QQlAfZwBwpGGEHgrs5S_8r3bEaJBhnOC37dQLDE0d0Wtr52vW848E1JuyOgi7_8zowuPck5R8CMqxo318xLlfWD7fZ5Tq8BQsOMoCbGVnBoCm-Au4PPeHonhBa7dwFQM-GobzRYGP5FqiKfqh9ofb6cRhp7WVRyc-aqbq_HgQAB9LVA5JeVLMvPvW0TN2ViUKhzbPGreiypbauhKGM5m_8AIZ57b6Afr05e0y4XDeW61xi_d3sr-K5pVYjObv3Rqf9G_xCb-zXV1G7N3PyWqaV4M7RslutJkinM2NKlUXENA"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3NzkxMzIsImlhdCI6MTU0MDc3NTUzMiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NTUzMiwiYXVkIjoiNmE3Yzc3M2YtZGI3Yi00YjJhLWI1NDMtYWNiYmEyMDA5ZjkxIiwianRpIjoiNzA0YzgwNTYtNDhmZi00ZDBhLThkZTctNGFkNzJlYTFjZmNkIiwic3ViIjoiM2RkMGJmMDQtMDcxNS00MjY3LThmNmYtOGYwNjMzNGUwYjJmIiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.ARkrFIb0-ZO6wpnzUTJeCQWqm2-6IRI2VoWith-W9iqbAW1U0Vd--QMHCZ2uAuDV_ktsV21AK3FAWFvNwDoAG8boKYoTl5CukoMaKwrWaOqDIIOuPkChS8ZQ8TXwg_nRztC2aY0WX72yOToWYu5F9BthOouljAsF40TDdk8wEwbil7b8hAc7scts7CJPTWVsC6vTtisLfrrj9eoI0Y4ZJt2WJPhdlqf7qxCMRihfe0ml1p4Jf-DTrHPRVTmg62La54zCb3o7nNf4LgoLvtI0p_sCEe9PNx6uTqonFzDcUIlbbjb8ixGW_uFzIknd_9GXeo7SKhDFnuOv03UPKCDqyw"
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+400 Bad Request
+
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-X-Request-Id: ef3f64a7-4477-4fa7-b98f-ddb8973b321a
+X-Request-Id: ec9d156e-1290-49a5-9d96-343e0fb65b0f
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
   "error": "invalid_request"
 }
 ```
 
-
doc/_includes/oauth-tokens-saml-assertion.html
@@ -6,54 +6,40 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"urn:ietf:params:oauth:grant-type:saml2-bearer","assertion":"PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il85ODQ1ZjRhNS00ODZhLTQ2ZjgtYTZjZS1hNDY5YzdmMGNhNjEiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMDoxMDozM1oiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjXzk4NDVmNGE1LTQ4NmEtNDZmOC1hNmNlLWE0NjljN2YwY2E2MSI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPjJHb3VlYXoza2V2cGtxek1pN0RCQU9YN0JhNnJrZE1KRTNlRTBRN1ZtcTQ9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPk9CR2NVSEFMZlVLdXhxTmdDTnljTkxrTWI3dVBiNkpjb08xOGo0U3lRRGNFNmRhdnhodFdDK0Q3YURmV1k4SktGZUh4MTEwZmdCeHFIUlpCV3M3KzBqWCtiT1dDVk8wYmNMOVNNMkRHVGtHV3hDVDh6Q04wcVlBRTQ0QW9RRkU3bUtoaUZuTXNqM2EyTTRLYzBNZGMrbjBxb2JDL3NSUXhRZmRXOThBUm9tbW1MQkhIUHBhdzlJTzB3MkJISXc1NnQ4VVc2dCtFL3owRWJvUlBUZWtPM2JMY1FSeFFRQXF3Y2lJT3ZKM2NLSmw5NWRZSll2aExDZjBCdGpONTUxRUhvMXliM3RoM0g1S3pVcTNZWFFOa0VLSms2dUFOV01WbmZWY0c0MEFqdGJoQllNaktSZ2pqbERQZGExRkhyV0hKSzBKcUFmU1FZWHhhYmYvMCtzZjY0dz09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURBeE1ETXdXaGNOTVRneE1USTRNREF4TURNd1dqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUR4djNOdWZRRnRsUWdOS2ljbWxUVWdoNW95cFFFT2tLVVMvK3ZNSUpFOEM4WURrNlE4NXRTazZtcUh3Q3Q2UVVxMStEY0VodWRPZzVUWXhRcW4yZlJqRlBpanlLUW1yZnJLZEcrWDlseTFWVi90TEoyaUgzdVJTZDRmUHJyOVRGRG1RalU0YStFejR4dDlCSjVOekVxUnlDcTdsWGFiY0xJQUlMOVdPcW9SakZaQ2xnUjI0M29iWm9ZdW44UzVjVnprTXcrSUVtUWNwbk1TT2ZUOGpoNnhnMzR6YjdyNGxCSFk4NFczZzJlZnpCdTF5ejRPSFdBWWxleDZpdm9Hc1N0VGRvdnlSSVZEM3B6YmZnQ1BYTlBLbnpJV2tTeTdlbCtQVC92THVoZGg5YUJpS0NZYzlycmYvS1Nob0t5KzNERHlMM3M4WjJSeU44Rm94RFJ2MWRUbEFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFEcy9xcHlmR21SVHFRM2RRRFJQWmx5OHZ5ODBhTVNwUCt3OWVwNW9paVBWb0xkbVBuYXgxR2p4WlVGaEhDY3RWRE9uUkprQ1czbEpYU1RDNXY3a0hYYnhPQWs3N0p2dmlWWUZCajNCdVpNekE0WnlKTy9PQlVhMHZIRTVZQkE2amFXMVM5YjlTTHlwL0ZLRnk0SzEyb1hkU2hYN3ZGR3B1RGxrdTA1L05ubytRYXFwSkIvb0ZBTDdFRXdiYnJYQWIzNURJbHVrbWtvNlMxQWhjWGZGVFVPd05vbUhaelV2VmRyQ09UTE1TVXZCMDUvQzErS0xUcHFTczAyUEFZS3psVXAyY0lRcnAyVU90M08wZzJvV2VSd09sUzZZYmEreTMyOTRJZ3V1Wk1RUVNDdXk5cU1PQ3B3dFU3NDBvTW1Sc1RGQmdrUy96dS93ajRYcTJhTmpMdz08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPmVsYW5lX3NtaXRoYW1AaGFtaWxsZnJhbWkubmFtZTwvTmFtZUlEPjxTdWJqZWN0Q29uZmlybWF0aW9uIE1ldGhvZD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmNtOmJlYXJlciI-PFN1YmplY3RDb25maXJtYXRpb25EYXRhIEluUmVzcG9uc2VUbz0iX2UwOThiYTEwLTk3ODktNDNmYy05NmI0LWY2N2RmNjA3N2QwMiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDAwOjE1OjMzWiIvPjwvU3ViamVjdENvbmZpcm1hdGlvbj48L1N1YmplY3Q-PENvbmRpdGlvbnMgTm90QmVmb3JlPSIyMDE4LTEwLTI5VDAwOjEwOjMzWiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDAzOjEwOjMzWiI-PEF1ZGllbmNlUmVzdHJpY3Rpb24-PEF1ZGllbmNlPmh0dHA6Ly9wcm9vZi50ZXN0OjUwMDAvbWV0YWRhdGE8L0F1ZGllbmNlPjwvQXVkaWVuY2VSZXN0cmljdGlvbj48L0NvbmRpdGlvbnM-PEF1dGhuU3RhdGVtZW50IEF1dGhuSW5zdGFudD0iMjAxOC0xMC0yOVQwMDoxMDozM1oiIFNlc3Npb25JbmRleD0iXzk4NDVmNGE1LTQ4NmEtNDZmOC1hNmNlLWE0NjljN2YwY2E2MSI-PEF1dGhuQ29udGV4dD48QXV0aG5Db250ZXh0Q2xhc3NSZWY-dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFjOmNsYXNzZXM6UGFzc3dvcmQ8L0F1dGhuQ29udGV4dENsYXNzUmVmPjwvQXV0aG5Db250ZXh0PjwvQXV0aG5TdGF0ZW1lbnQ-PEF0dHJpYnV0ZVN0YXRlbWVudD48QXR0cmlidXRlIE5hbWU9ImlkIj48QXR0cmlidXRlVmFsdWU-Y2Q1MDU2YzItNjMwMy00OTFiLWE2MWQtYTc2MDU1MjhhOTQ4PC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImVtYWlsIj48QXR0cmlidXRlVmFsdWU-ZWxhbmVfc21pdGhhbUBoYW1pbGxmcmFtaS5uYW1lPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImNyZWF0ZWRfYXQiPjxBdHRyaWJ1dGVWYWx1ZT4yMDE4LTEwLTI5IDAwOjEwOjMzIFVUQzwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PC9BdHRyaWJ1dGVTdGF0ZW1lbnQ-PC9Bc3NlcnRpb24-Cg=="}' \
+  -d '{"grant_type":"urn:ietf:params:oauth:grant-type:saml2-bearer","assertion":"PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il80MDExZDY4Ni0yMTUzLTQwMzYtYWRjNy1iOTgxZDkyYjE4N2EiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMToxMjoxMloiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjXzQwMTFkNjg2LTIxNTMtNDAzNi1hZGM3LWI5ODFkOTJiMTg3YSI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPmZBcjBaTHd1MVl0d2o3eGNQbXZTY2hyRFRubFliQjlvTGZETTZaRmxqM289PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPktzcW5Ea2tMcDN6SWkzNmhMbkw4aVppM1RVUnJ3eE94WkplbXVhR1ZVdytHVmJxR05GT3VUYTdhNlZQbGNVN0tlZkZpMlMrcWJTTDhpQW1OQjBGcTE2cXhHUnQ0bTZMbndqT1pKbVMzckNrQndzaW5wL0I0MHpDR09lbE93QVNWTmdidldjaSs2eFlVMDhlNnRFSTJVaFBVcFVUZnpQNWNIcHIySTJjMU84eHJJTEZSK0hCMjJlUDdLOTZOY0liV3phRW1nenJEMnA5Z1IyTG1aL1RWZFAzaVgvNGsvbWtxcVQvL0MyNnE2eVJWL1NLY2lIUlB1NXVoQWhkMStOdStPL01vQ2wwRU4rN0w2NzVOZnVNNnVhdXlVRUUxQXdjRnBpNHZrWUxqT0hqb1A3OWJsSmpJYU5td2p0QzM2NjhWZHp1Tlh5SXVxaUtHTjRLQVJUc3JnQT09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURFeE1qRXdXaGNOTVRneE1USTRNREV4TWpFd1dqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURRVEcwbDdHMHQ5a1BrdlIwTjkxallxVjhORHEyOExsdkxLam82N2dxVFNrdEV0RmJyVERsMm5uMHJuVzdwVCtkUGJxSmhyRkNyVFJHZHFJNzQydjZUR3NST3N5WVByTGRwYkRQaFVmbHJITFVXWXZxMkVXNndDbDhRa2NkdDVKakRyTjlWNy9QbXJYWTBBQld5bHRqRVR0NGZLSGZNWlI4dFlFSU9oNkg3V3V3WlpKWmpCbTFLcFowekhxTnlxMVJHZzU2RDZDSWVXS1RsTnRXc010YVNET2xZK0NOajBTMGxsamxncHlFVXF3TXJoN2Y2YzJMVVpnMzlNWUxCUWJGeVcveXlkVFNDRkhaQS9CTWI1Q09nZVZiV0VXbC84ZkYzYk9pQ1BDSEdtZXA0U3JJRVdjQXF6ZTVRTDM2MXdnL1V3bFR0VTQ1TXF0dE1KRUlUNkRJTkFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFQeW0zOXUvQkd0SzB4SWx5dzZma1orYTNlcU9BTDJPZkRLYmFKQUNIcDdMVkMzOE9HRXI0M2k5djlYd2JQbWpKWEc3S2JpZ3lJUkl4ZmV1eWN2VGdma3pXcUFlOVY3c3ZSd2o3S21KbXp1RkxjUEkrUkl4bnljbnBNUzlUK0krci82QjFsM0FrQVdwZmdiaWlrWTgraDllQnRxZGFVMHl3OVEzc3pZS3dzQjZST3BsSjR1bVMrbXIyUW5CZ0NzSnVqZkZmeFFKbm9qaFRJNmpNcTJKTm5zRzV1cmZlVmZtRHRNRHZzaER3RG5wQVJLZVRUZjRUcjlkbjZOOXlyaHQrSnl5SGtLcE81aWhidDVJZHlBS3ptWjBtZjJvNTQwZ1owdUZrWFpqSW9GTHQ3L0J3WTUrSGh2RDFoUit2cG96enlFYW4ydmNCSHJ1UU9Nc2VoT2N5az08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPmxldHRpZV9ncmFudEBvaGFyYS5jYTwvTmFtZUlEPjxTdWJqZWN0Q29uZmlybWF0aW9uIE1ldGhvZD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmNtOmJlYXJlciI-PFN1YmplY3RDb25maXJtYXRpb25EYXRhIEluUmVzcG9uc2VUbz0iXzRkMWRiNzE3LWE1MTMtNDY0ZS1hMjgxLTAyNzVkYTg5ZjY5NiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDAxOjE3OjEyWiIvPjwvU3ViamVjdENvbmZpcm1hdGlvbj48L1N1YmplY3Q-PENvbmRpdGlvbnMgTm90QmVmb3JlPSIyMDE4LTEwLTI5VDAxOjEyOjEyWiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDA0OjEyOjEyWiI-PEF1ZGllbmNlUmVzdHJpY3Rpb24-PEF1ZGllbmNlPmh0dHA6Ly9wcm9vZi50ZXN0OjUwMDAvbWV0YWRhdGE8L0F1ZGllbmNlPjwvQXVkaWVuY2VSZXN0cmljdGlvbj48L0NvbmRpdGlvbnM-PEF1dGhuU3RhdGVtZW50IEF1dGhuSW5zdGFudD0iMjAxOC0xMC0yOVQwMToxMjoxMloiIFNlc3Npb25JbmRleD0iXzQwMTFkNjg2LTIxNTMtNDAzNi1hZGM3LWI5ODFkOTJiMTg3YSI-PEF1dGhuQ29udGV4dD48QXV0aG5Db250ZXh0Q2xhc3NSZWY-dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFjOmNsYXNzZXM6UGFzc3dvcmQ8L0F1dGhuQ29udGV4dENsYXNzUmVmPjwvQXV0aG5Db250ZXh0PjwvQXV0aG5TdGF0ZW1lbnQ-PEF0dHJpYnV0ZVN0YXRlbWVudD48QXR0cmlidXRlIE5hbWU9ImlkIj48QXR0cmlidXRlVmFsdWU-NDM5MTJiODQtZGFlNS00NTJhLTkwNTEtYzVlZmM5M2FmMzJlPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImVtYWlsIj48QXR0cmlidXRlVmFsdWU-bGV0dGllX2dyYW50QG9oYXJhLmNhPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImNyZWF0ZWRfYXQiPjxBdHRyaWJ1dGVWYWx1ZT4yMDE4LTEwLTI5IDAxOjEyOjEyIFVUQzwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PC9BdHRyaWJ1dGVTdGF0ZW1lbnQ-PC9Bc3NlcnRpb24-Cg=="}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic NmM2ZWZkNzQtN2E3ZS00ODE5LWE5ZjktYjlmNzQ4NzIzYWUxOlJtdWhTSDFIaHZzVjd4YWtCam9lWWhTOQ==" \
+  -H "Authorization: Basic ZjQwZjNhYmUtZWM1Yy00Y2FjLTgzY2UtZGMyMThiMjVkYzExOlVNN3BYMVQ3ckxGZ0FwZFVtSDFCY2pLMg==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic NmM2ZWZkNzQtN2E3ZS00ODE5LWE5ZjktYjlmNzQ4NzIzYWUxOlJtdWhTSDFIaHZzVjd4YWtCam9lWWhTOQ==
+Authorization: Basic ZjQwZjNhYmUtZWM1Yy00Y2FjLTgzY2UtZGMyMThiMjVkYzExOlVNN3BYMVQ3ckxGZ0FwZFVtSDFCY2pLMg==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
-
-
-Request Body:
 ```json
 {
   "grant_type": "urn:ietf:params:oauth:grant-type:saml2-bearer",
-  "assertion": "PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il85ODQ1ZjRhNS00ODZhLTQ2ZjgtYTZjZS1hNDY5YzdmMGNhNjEiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMDoxMDozM1oiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjXzk4NDVmNGE1LTQ4NmEtNDZmOC1hNmNlLWE0NjljN2YwY2E2MSI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPjJHb3VlYXoza2V2cGtxek1pN0RCQU9YN0JhNnJrZE1KRTNlRTBRN1ZtcTQ9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPk9CR2NVSEFMZlVLdXhxTmdDTnljTkxrTWI3dVBiNkpjb08xOGo0U3lRRGNFNmRhdnhodFdDK0Q3YURmV1k4SktGZUh4MTEwZmdCeHFIUlpCV3M3KzBqWCtiT1dDVk8wYmNMOVNNMkRHVGtHV3hDVDh6Q04wcVlBRTQ0QW9RRkU3bUtoaUZuTXNqM2EyTTRLYzBNZGMrbjBxb2JDL3NSUXhRZmRXOThBUm9tbW1MQkhIUHBhdzlJTzB3MkJISXc1NnQ4VVc2dCtFL3owRWJvUlBUZWtPM2JMY1FSeFFRQXF3Y2lJT3ZKM2NLSmw5NWRZSll2aExDZjBCdGpONTUxRUhvMXliM3RoM0g1S3pVcTNZWFFOa0VLSms2dUFOV01WbmZWY0c0MEFqdGJoQllNaktSZ2pqbERQZGExRkhyV0hKSzBKcUFmU1FZWHhhYmYvMCtzZjY0dz09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURBeE1ETXdXaGNOTVRneE1USTRNREF4TURNd1dqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUR4djNOdWZRRnRsUWdOS2ljbWxUVWdoNW95cFFFT2tLVVMvK3ZNSUpFOEM4WURrNlE4NXRTazZtcUh3Q3Q2UVVxMStEY0VodWRPZzVUWXhRcW4yZlJqRlBpanlLUW1yZnJLZEcrWDlseTFWVi90TEoyaUgzdVJTZDRmUHJyOVRGRG1RalU0YStFejR4dDlCSjVOekVxUnlDcTdsWGFiY0xJQUlMOVdPcW9SakZaQ2xnUjI0M29iWm9ZdW44UzVjVnprTXcrSUVtUWNwbk1TT2ZUOGpoNnhnMzR6YjdyNGxCSFk4NFczZzJlZnpCdTF5ejRPSFdBWWxleDZpdm9Hc1N0VGRvdnlSSVZEM3B6YmZnQ1BYTlBLbnpJV2tTeTdlbCtQVC92THVoZGg5YUJpS0NZYzlycmYvS1Nob0t5KzNERHlMM3M4WjJSeU44Rm94RFJ2MWRUbEFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFEcy9xcHlmR21SVHFRM2RRRFJQWmx5OHZ5ODBhTVNwUCt3OWVwNW9paVBWb0xkbVBuYXgxR2p4WlVGaEhDY3RWRE9uUkprQ1czbEpYU1RDNXY3a0hYYnhPQWs3N0p2dmlWWUZCajNCdVpNekE0WnlKTy9PQlVhMHZIRTVZQkE2amFXMVM5YjlTTHlwL0ZLRnk0SzEyb1hkU2hYN3ZGR3B1RGxrdTA1L05ubytRYXFwSkIvb0ZBTDdFRXdiYnJYQWIzNURJbHVrbWtvNlMxQWhjWGZGVFVPd05vbUhaelV2VmRyQ09UTE1TVXZCMDUvQzErS0xUcHFTczAyUEFZS3psVXAyY0lRcnAyVU90M08wZzJvV2VSd09sUzZZYmEreTMyOTRJZ3V1Wk1RUVNDdXk5cU1PQ3B3dFU3NDBvTW1Sc1RGQmdrUy96dS93ajRYcTJhTmpMdz08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPmVsYW5lX3NtaXRoYW1AaGFtaWxsZnJhbWkubmFtZTwvTmFtZUlEPjxTdWJqZWN0Q29uZmlybWF0aW9uIE1ldGhvZD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmNtOmJlYXJlciI-PFN1YmplY3RDb25maXJtYXRpb25EYXRhIEluUmVzcG9uc2VUbz0iX2UwOThiYTEwLTk3ODktNDNmYy05NmI0LWY2N2RmNjA3N2QwMiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDAwOjE1OjMzWiIvPjwvU3ViamVjdENvbmZpcm1hdGlvbj48L1N1YmplY3Q-PENvbmRpdGlvbnMgTm90QmVmb3JlPSIyMDE4LTEwLTI5VDAwOjEwOjMzWiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDAzOjEwOjMzWiI-PEF1ZGllbmNlUmVzdHJpY3Rpb24-PEF1ZGllbmNlPmh0dHA6Ly9wcm9vZi50ZXN0OjUwMDAvbWV0YWRhdGE8L0F1ZGllbmNlPjwvQXVkaWVuY2VSZXN0cmljdGlvbj48L0NvbmRpdGlvbnM-PEF1dGhuU3RhdGVtZW50IEF1dGhuSW5zdGFudD0iMjAxOC0xMC0yOVQwMDoxMDozM1oiIFNlc3Npb25JbmRleD0iXzk4NDVmNGE1LTQ4NmEtNDZmOC1hNmNlLWE0NjljN2YwY2E2MSI-PEF1dGhuQ29udGV4dD48QXV0aG5Db250ZXh0Q2xhc3NSZWY-dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFjOmNsYXNzZXM6UGFzc3dvcmQ8L0F1dGhuQ29udGV4dENsYXNzUmVmPjwvQXV0aG5Db250ZXh0PjwvQXV0aG5TdGF0ZW1lbnQ-PEF0dHJpYnV0ZVN0YXRlbWVudD48QXR0cmlidXRlIE5hbWU9ImlkIj48QXR0cmlidXRlVmFsdWU-Y2Q1MDU2YzItNjMwMy00OTFiLWE2MWQtYTc2MDU1MjhhOTQ4PC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImVtYWlsIj48QXR0cmlidXRlVmFsdWU-ZWxhbmVfc21pdGhhbUBoYW1pbGxmcmFtaS5uYW1lPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImNyZWF0ZWRfYXQiPjxBdHRyaWJ1dGVWYWx1ZT4yMDE4LTEwLTI5IDAwOjEwOjMzIFVUQzwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PC9BdHRyaWJ1dGVTdGF0ZW1lbnQ-PC9Bc3NlcnRpb24-Cg=="
+  "assertion": "PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il80MDExZDY4Ni0yMTUzLTQwMzYtYWRjNy1iOTgxZDkyYjE4N2EiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMToxMjoxMloiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjXzQwMTFkNjg2LTIxNTMtNDAzNi1hZGM3LWI5ODFkOTJiMTg3YSI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPmZBcjBaTHd1MVl0d2o3eGNQbXZTY2hyRFRubFliQjlvTGZETTZaRmxqM289PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPktzcW5Ea2tMcDN6SWkzNmhMbkw4aVppM1RVUnJ3eE94WkplbXVhR1ZVdytHVmJxR05GT3VUYTdhNlZQbGNVN0tlZkZpMlMrcWJTTDhpQW1OQjBGcTE2cXhHUnQ0bTZMbndqT1pKbVMzckNrQndzaW5wL0I0MHpDR09lbE93QVNWTmdidldjaSs2eFlVMDhlNnRFSTJVaFBVcFVUZnpQNWNIcHIySTJjMU84eHJJTEZSK0hCMjJlUDdLOTZOY0liV3phRW1nenJEMnA5Z1IyTG1aL1RWZFAzaVgvNGsvbWtxcVQvL0MyNnE2eVJWL1NLY2lIUlB1NXVoQWhkMStOdStPL01vQ2wwRU4rN0w2NzVOZnVNNnVhdXlVRUUxQXdjRnBpNHZrWUxqT0hqb1A3OWJsSmpJYU5td2p0QzM2NjhWZHp1Tlh5SXVxaUtHTjRLQVJUc3JnQT09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURFeE1qRXdXaGNOTVRneE1USTRNREV4TWpFd1dqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURRVEcwbDdHMHQ5a1BrdlIwTjkxallxVjhORHEyOExsdkxLam82N2dxVFNrdEV0RmJyVERsMm5uMHJuVzdwVCtkUGJxSmhyRkNyVFJHZHFJNzQydjZUR3NST3N5WVByTGRwYkRQaFVmbHJITFVXWXZxMkVXNndDbDhRa2NkdDVKakRyTjlWNy9QbXJYWTBBQld5bHRqRVR0NGZLSGZNWlI4dFlFSU9oNkg3V3V3WlpKWmpCbTFLcFowekhxTnlxMVJHZzU2RDZDSWVXS1RsTnRXc010YVNET2xZK0NOajBTMGxsamxncHlFVXF3TXJoN2Y2YzJMVVpnMzlNWUxCUWJGeVcveXlkVFNDRkhaQS9CTWI1Q09nZVZiV0VXbC84ZkYzYk9pQ1BDSEdtZXA0U3JJRVdjQXF6ZTVRTDM2MXdnL1V3bFR0VTQ1TXF0dE1KRUlUNkRJTkFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUFQeW0zOXUvQkd0SzB4SWx5dzZma1orYTNlcU9BTDJPZkRLYmFKQUNIcDdMVkMzOE9HRXI0M2k5djlYd2JQbWpKWEc3S2JpZ3lJUkl4ZmV1eWN2VGdma3pXcUFlOVY3c3ZSd2o3S21KbXp1RkxjUEkrUkl4bnljbnBNUzlUK0krci82QjFsM0FrQVdwZmdiaWlrWTgraDllQnRxZGFVMHl3OVEzc3pZS3dzQjZST3BsSjR1bVMrbXIyUW5CZ0NzSnVqZkZmeFFKbm9qaFRJNmpNcTJKTm5zRzV1cmZlVmZtRHRNRHZzaER3RG5wQVJLZVRUZjRUcjlkbjZOOXlyaHQrSnl5SGtLcE81aWhidDVJZHlBS3ptWjBtZjJvNTQwZ1owdUZrWFpqSW9GTHQ3L0J3WTUrSGh2RDFoUit2cG96enlFYW4ydmNCSHJ1UU9Nc2VoT2N5az08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPmxldHRpZV9ncmFudEBvaGFyYS5jYTwvTmFtZUlEPjxTdWJqZWN0Q29uZmlybWF0aW9uIE1ldGhvZD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmNtOmJlYXJlciI-PFN1YmplY3RDb25maXJtYXRpb25EYXRhIEluUmVzcG9uc2VUbz0iXzRkMWRiNzE3LWE1MTMtNDY0ZS1hMjgxLTAyNzVkYTg5ZjY5NiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDAxOjE3OjEyWiIvPjwvU3ViamVjdENvbmZpcm1hdGlvbj48L1N1YmplY3Q-PENvbmRpdGlvbnMgTm90QmVmb3JlPSIyMDE4LTEwLTI5VDAxOjEyOjEyWiIgTm90T25PckFmdGVyPSIyMDE4LTEwLTI5VDA0OjEyOjEyWiI-PEF1ZGllbmNlUmVzdHJpY3Rpb24-PEF1ZGllbmNlPmh0dHA6Ly9wcm9vZi50ZXN0OjUwMDAvbWV0YWRhdGE8L0F1ZGllbmNlPjwvQXVkaWVuY2VSZXN0cmljdGlvbj48L0NvbmRpdGlvbnM-PEF1dGhuU3RhdGVtZW50IEF1dGhuSW5zdGFudD0iMjAxOC0xMC0yOVQwMToxMjoxMloiIFNlc3Npb25JbmRleD0iXzQwMTFkNjg2LTIxNTMtNDAzNi1hZGM3LWI5ODFkOTJiMTg3YSI-PEF1dGhuQ29udGV4dD48QXV0aG5Db250ZXh0Q2xhc3NSZWY-dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFjOmNsYXNzZXM6UGFzc3dvcmQ8L0F1dGhuQ29udGV4dENsYXNzUmVmPjwvQXV0aG5Db250ZXh0PjwvQXV0aG5TdGF0ZW1lbnQ-PEF0dHJpYnV0ZVN0YXRlbWVudD48QXR0cmlidXRlIE5hbWU9ImlkIj48QXR0cmlidXRlVmFsdWU-NDM5MTJiODQtZGFlNS00NTJhLTkwNTEtYzVlZmM5M2FmMzJlPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImVtYWlsIj48QXR0cmlidXRlVmFsdWU-bGV0dGllX2dyYW50QG9oYXJhLmNhPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9ImNyZWF0ZWRfYXQiPjxBdHRyaWJ1dGVWYWx1ZT4yMDE4LTEwLTI5IDAxOjEyOjEyIFVUQzwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PC9BdHRyaWJ1dGVTdGF0ZW1lbnQ-PC9Bc3NlcnRpb24-Cg=="
 }
 ```
-
-Response Headers:
-
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+400 Bad Request
+
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-X-Request-Id: 3539c29d-1bd4-48bc-9d3a-93ab980b1313
+X-Request-Id: c11598e7-b972-4049-9635-e8967834fdd9
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
   "error": "invalid_request"
 }
 ```
 
-
doc/_includes/scim-schemas-groups.html
@@ -0,0 +1,38 @@
+
+#### GET http://localhost:5000/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group
+
+Example curl request:
+
+```bash
+$ curl http://localhost:5000/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group \
+  -X GET \
+  -d '' \
+  -H "Accept: application/json" \
+  -H "Content-Type: application/json" \
+  -H "User-Agent: net/hippie 0.1.9" \
+  -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
+```
+Request:
+```text
+Accept: application/json
+Content-Type: application/json
+User-Agent: net/hippie 0.1.9
+Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+```
+```json
+
+```
+Response:
+```text
+500 Internal Server Error
+
+Content-Type: text/html; charset=UTF-8
+X-Web-Console-Session-Id: aa4e782929d7b8ec9614e9c2effcc660
+X-Web-Console-Mount-Point: /__web_console
+X-Request-Id: 912e2471-4ab1-41f3-bc18-a70b2c40dcfb
+Transfer-Encoding: chunked
+```
+```json
+
+```
+
doc/_includes/scim-schemas-users.html
@@ -0,0 +1,38 @@
+
+#### GET http://localhost:5000/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User
+
+Example curl request:
+
+```bash
+$ curl http://localhost:5000/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User \
+  -X GET \
+  -d '' \
+  -H "Accept: application/json" \
+  -H "Content-Type: application/json" \
+  -H "User-Agent: net/hippie 0.1.9" \
+  -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
+```
+Request:
+```text
+Accept: application/json
+Content-Type: application/json
+User-Agent: net/hippie 0.1.9
+Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+```
+```json
+
+```
+Response:
+```text
+500 Internal Server Error
+
+Content-Type: text/html; charset=UTF-8
+X-Web-Console-Session-Id: 7467601a788ce5c2c03b95903c6783c0
+X-Web-Console-Mount-Point: /__web_console
+X-Request-Id: 8c51ec01-a0ab-4581-9a9f-8baaf3e51010
+Transfer-Encoding: chunked
+```
+```json
+
+```
+
doc/_includes/scim-schemas.html
@@ -0,0 +1,38 @@
+
+#### GET http://localhost:5000/scim/v2/Schemas
+
+Example curl request:
+
+```bash
+$ curl http://localhost:5000/scim/v2/Schemas \
+  -X GET \
+  -d '' \
+  -H "Accept: application/json" \
+  -H "Content-Type: application/json" \
+  -H "User-Agent: net/hippie 0.1.9" \
+  -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
+```
+Request:
+```text
+Accept: application/json
+Content-Type: application/json
+User-Agent: net/hippie 0.1.9
+Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+```
+```json
+
+```
+Response:
+```text
+500 Internal Server Error
+
+Content-Type: text/html; charset=UTF-8
+X-Web-Console-Session-Id: f26faa87e27d8e96dd9e2971d3811f91
+X-Web-Console-Mount-Point: /__web_console
+X-Request-Id: ad300b1a-442c-40f4-8132-057c39042e13
+Transfer-Encoding: chunked
+```
+```json
+
+```
+
doc/_includes/scim-service-provider-config.html
@@ -12,34 +12,26 @@ $ curl http://localhost:5000/scim/v2/ServiceProviderConfig \
   -H "User-Agent: net/hippie 0.1.9" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
-Request Headers:
-
+Request:
 ```text
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
+```json
 
-
-Response Headers:
-
+```
+Response:
 ```text
-X-Frame-Options: SAMEORIGIN
-X-Xss-Protection: 1; mode=block
-X-Content-Type-Options: nosniff
-X-Download-Options: noopen
-X-Permitted-Cross-Domain-Policies: none
-Referrer-Policy: strict-origin-when-cross-origin
+200 OK
+
 Content-Type: application/scim+json
-Etag: W/"61bf20baa70ec24e9a207c4db0b71ef7"
+Etag: W/"b7f6a6a546573bdafbdb92f4b120c61f"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: 6e8006e7-3b28-4d73-905e-5ccdb6e49ec6
+X-Request-Id: e2a4e899-3d10-4fab-8f7e-bdef8d030691
 Transfer-Encoding: chunked
 ```
-
-
-Response Body:
 ```json
 {
   "schemas": [
@@ -79,12 +71,11 @@ Response Body:
   ],
   "meta": {
     "resourceType": "ServiceProviderConfig",
-    "created": "2018-10-29T00:10:34Z",
-    "lastModified": "2018-10-29T00:10:34Z",
+    "created": "2018-10-29T01:12:13Z",
+    "lastModified": "2018-10-29T01:12:13Z",
     "location": "http://localhost:5000/scim/v2/ServiceProviderConfig",
     "version": 1
   }
 }
 ```
 
-
doc/_posts/2018-10-28-scim-schemas.markdown
@@ -0,0 +1,15 @@
+---
+layout: post
+title:  "SCIM - Schemas"
+date:   2018-10-28 18:55:00 -0600
+permalink: /scim/schemas.html
+categories: scim
+---
+
+This endpoint adheres to [RFC-7643](https://tools.ietf.org/html/rfc7643#section-7).
+
+{% include scim-schemas.html %}
+
+{% include scim-schemas-users.html %}
+
+{% include scim-schemas-groups.html %}
doc/_posts/2018-10-28-scim-service-provider-config.markdown
@@ -2,8 +2,8 @@
 layout: post
 title:  "SCIM - Service Provider Config"
 date:   2018-10-28 17:00:00 -0600
-permalink: /scime/service-provider-config.html
-categories: oauth
+permalink: /scim/service-provider-config.html
+categories: scim
 ---
 
 This endpoint adheres to [RFC-7644](https://tools.ietf.org/html/rfc7644#section-4).
spec/documentation.rb
@@ -132,4 +132,25 @@ RSpec.describe "documentation" do
       expect(response.code).to eql('200')
     end
   end
+
+  specify do
+    VCR.use_cassette("scim-schemas") do
+      response = hippie.get("#{scheme}://#{host}/scim/v2/Schemas")
+      expect(response.code).to eql('200')
+    end
+  end
+
+  specify do
+    VCR.use_cassette("scim-schemas-users") do
+      response = hippie.get("#{scheme}://#{host}/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User")
+      expect(response.code).to eql('200')
+    end
+  end
+
+  specify do
+    VCR.use_cassette("scim-schemas-groups") do
+      response = hippie.get("#{scheme}://#{host}/scim/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group")
+      expect(response.code).to eql('200')
+    end
+  end
 end