chore: update v3 OpenAPI specs to v3.818.0 - #35
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
| content: | ||
| multipart/form-data: | ||
| schema: | ||
| $ref: '#/components/schemas/OneTimeAmlRequest' |
There was a problem hiding this comment.
Suggestion: The description states that countries, aliases, consent, user_details, metadata and partner_params must be sent as JSON-encoded strings, but the multipart body declares no encoding. Without an explicit encoding block, generated clients will serialize arrays/objects with the default multipart rules and produce requests the API rejects. [possible issue, importance: 7]
| content: | |
| multipart/form-data: | |
| schema: | |
| $ref: '#/components/schemas/OneTimeAmlRequest' | |
| content: | |
| multipart/form-data: | |
| schema: | |
| $ref: '#/components/schemas/OneTimeAmlRequest' | |
| encoding: | |
| countries: | |
| contentType: application/json | |
| aliases: | |
| contentType: application/json | |
| consent: | |
| contentType: application/json | |
| user_details: | |
| contentType: application/json | |
| metadata: | |
| contentType: application/json | |
| partner_params: | |
| contentType: application/json |
| content: | ||
| multipart/form-data: | ||
| schema: | ||
| $ref: '#/components/schemas/OneTimeAmlRequest' |
There was a problem hiding this comment.
Suggestion: Mirror the JSON-encoding contract in the standalone spec as well, so SDK generation from this entry file produces the JSON-string parts the endpoint requires for the array/object fields. [possible issue, importance: 7]
| content: | |
| multipart/form-data: | |
| schema: | |
| $ref: '#/components/schemas/OneTimeAmlRequest' | |
| content: | |
| multipart/form-data: | |
| schema: | |
| $ref: '#/components/schemas/OneTimeAmlRequest' | |
| encoding: | |
| countries: | |
| contentType: application/json | |
| aliases: | |
| contentType: application/json | |
| consent: | |
| contentType: application/json | |
| user_details: | |
| contentType: application/json | |
| metadata: | |
| contentType: application/json | |
| partner_params: | |
| contentType: application/json |
| countries: | ||
| type: array | ||
| minItems: 1 | ||
| items: | ||
| type: string | ||
| minLength: 2 | ||
| maxLength: 2 |
There was a problem hiding this comment.
Suggestion: The description requires uppercase ISO 3166-1 alpha-2 codes, but the schema only constrains length, so ng or 1! validate successfully and are then rejected server-side. Add a pattern to make the contract enforceable by client validators. [general, importance: 6]
| countries: | |
| type: array | |
| minItems: 1 | |
| items: | |
| type: string | |
| minLength: 2 | |
| maxLength: 2 | |
| countries: | |
| type: array | |
| minItems: 1 | |
| items: | |
| type: string | |
| minLength: 2 | |
| maxLength: 2 | |
| pattern: '^[A-Z]{2}$' |
| birth_year: | ||
| type: string | ||
| pattern: '^\d{4}$' | ||
| nullable: true |
There was a problem hiding this comment.
Suggestion: The pattern accepts values below the documented minimum of 1000 (e.g. 0000, 0999), so clients can pass validation and still get a 400. Tighten the pattern to only allow four-digit years starting from 1000. [general, importance: 5]
| birth_year: | |
| type: string | |
| pattern: '^\d{4}$' | |
| nullable: true | |
| birth_year: | |
| type: string | |
| pattern: '^[1-9]\d{3}$' | |
| nullable: true |
| email: | ||
| type: string | ||
| format: email | ||
| nullable: true | ||
| description: >- | ||
| Email address. At least one of email or phone_number is required. | ||
| example: john@example.com | ||
| phone_number: | ||
| type: string | ||
| pattern: '^\+[1-9]\d{6,14}$' | ||
| nullable: true |
There was a problem hiding this comment.
Suggestion: Because both contact fields are nullable: true, the anyOf: required constraint is satisfied by sending email: null, defeating the "at least one contact" rule declared in the schema. Drop nullable on these fields so the requirement is actually enforceable. [general, importance: 5]
| email: | |
| type: string | |
| format: email | |
| nullable: true | |
| description: >- | |
| Email address. At least one of email or phone_number is required. | |
| example: john@example.com | |
| phone_number: | |
| type: string | |
| pattern: '^\+[1-9]\d{6,14}$' | |
| nullable: true | |
| email: | |
| type: string | |
| format: email | |
| description: >- | |
| Email address. At least one of email or phone_number is required. | |
| example: john@example.com | |
| phone_number: | |
| type: string | |
| pattern: '^\+[1-9]\d{6,14}$' |
User description
Automated v3 OpenAPI spec update for v3.818.0.
Triggered by Adeyemi Adunola (@Kennyinspire) - assigned to you in case it needs a manual merge.
PR Type
Enhancement, Documentation
Description
Add new One-Time AML spec (
POST /v3/aml)Merge AML endpoint, schemas, callbacks into
openapi.yamlRegister new spec in README and docs viewer
Document
api_urlclaim in v3 token spec; update CHANGELOGDiagram Walkthrough
File Walkthrough
v3-one-time-aml-entry.yaml
New One-Time AML API specificationspecs/v3/v3-one-time-aml-entry.yaml
POST /v3/aml,job type 15)
OneTimeAmlRequestwith countries,full_name, aliases, consent, user_details
OneTimeAmlAcceptedResponse,AmlPersonMatch,OneTimeAmlCallback,Consent,ApiErrorResponseschemasand result callback examples
openapi.yaml
Integrate One-Time AML into full v3 specspecs/v3/openapi.yaml
One-Time AMLtag and/v3/amlPOST operationOneTimeAmlRequest,OneTimeAmlAcceptedResponse,AmlPersonMatch,OneTimeAmlCallbackcomponent schemasindex.html
Add One Time Aml to docs spec listdocs/index.html
v3-one-time-aml-entryspec in the docs viewer spec listREADME.md
Document One-Time AML endpoint in READMEREADME.md
v3-token.yaml
Mention api_url claim in token descriptionspecs/v3/v3-token.yaml
api_urlbase URLCHANGELOG.md
Add v3.818.0 changelog entryCHANGELOG.md
v3.818.0release entry listing updatedopenapi,v3-one-time-aml-entry, andv3-token