-
Notifications
You must be signed in to change notification settings - Fork 3
chore: Update external account schemas from webdev #148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
chore: Update external account schemas from webdev #148
Conversation
Greptile OverviewGreptile SummaryAuto-synced two new external account schemas ( Critical Issues:
Recommended Actions:
Confidence Score: 2/5
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/external_accounts/MxnSpeiAccountInfo.yaml | New MXN SPEI account schema with inconsistent field naming (clabe vs clabeNumber), inline beneficiary definition instead of using BeneficiaryOneOf, and missing allOf pattern |
| openapi/components/schemas/external_accounts/InrUpiAccountInfo.yaml | New INR UPI account schema with inconsistent field naming (fullName vs per-field), inline beneficiary definition instead of using BeneficiaryOneOf, and missing allOf pattern |
| openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml | Added two new account types with discriminator mappings; formatting changed from 2-space to no-space indent for list items |
Sequence Diagram
sequenceDiagram
participant Webdev as Webdev/Sparkcore
participant PR as PR #148
participant GridAPI as Grid API OpenAPI
participant Client as API Clients
Webdev->>PR: Auto-sync external account schemas
Note over PR: Add MxnSpeiAccountInfo.yaml<br/>Add InrUpiAccountInfo.yaml<br/>Update ExternalAccountInfoOneOf.yaml
PR->>GridAPI: ExternalAccountInfoOneOf references new schemas
Note over GridAPI: ⚠️ Missing BaseExternalAccountInfo update<br/>⚠️ Missing ExternalAccountType enum update
alt If merged without fixes
Client->>GridAPI: Request with MXN_SPEI_ACCOUNT type
GridAPI-->>Client: ❌ Validation error (unknown type)
else If properly updated
Client->>GridAPI: Request with MXN_SPEI_ACCOUNT type
GridAPI->>GridAPI: Validate against schema
GridAPI-->>Client: ✅ Success
end
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3 files reviewed, 3 comments
| type: object | ||
| title: MxnSpeiAccountInfo | ||
| description: Required fields for USD -> MXN corridor via Spei | ||
| required: | ||
| - accountType | ||
| - beneficiary | ||
| - clabe | ||
| - name | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - MXN_SPEI_ACCOUNT | ||
| example: MXN_SPEI_ACCOUNT | ||
| clabe: | ||
| type: string | ||
| description: Mexican CLABE interbank account number (18 digits) | ||
| example: 012180001234567890 | ||
| name: | ||
| type: string | ||
| description: Full name of the payee | ||
| example: Jane Smith | ||
| beneficiary: | ||
| oneOf: | ||
| - $ref: ./IndividualBeneficiary.yaml | ||
| - $ref: ./BusinessBeneficiary.yaml | ||
| discriminator: | ||
| propertyName: beneficiaryType | ||
| mapping: | ||
| INDIVIDUAL: ./IndividualBeneficiary.yaml | ||
| BUSINESS: ./BusinessBeneficiary.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Schema structure doesn't follow existing patterns. All other external account schemas use allOf with BaseExternalAccountInfo and a common schema ref (see ClabeAccountExternalAccountInfo.yaml, UpiAccountExternalAccountInfo.yaml). This schema should:
- Use
allOfpattern withBaseExternalAccountInfo.yaml - Reference a common
MxnSpeiAccountInfo.yamlschema - Use
$ref: ./BeneficiaryOneOf.yamlfor beneficiary instead of inline definition - Field
clabeshould beclabeNumber(matches existingClabeAccountInfo.yaml)
Expected structure:
allOf:
- $ref: ./BaseExternalAccountInfo.yaml
- $ref: ../common/MxnSpeiAccountInfo.yaml
- type: object
required:
- beneficiary
properties:
beneficiary:
$ref: ./BeneficiaryOneOf.yamlNote: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/external_accounts/MxnSpeiAccountInfo.yaml
Line: 1:31
Comment:
Schema structure doesn't follow existing patterns. All other external account schemas use `allOf` with `BaseExternalAccountInfo` and a common schema ref (see `ClabeAccountExternalAccountInfo.yaml`, `UpiAccountExternalAccountInfo.yaml`). This schema should:
1. Use `allOf` pattern with `BaseExternalAccountInfo.yaml`
2. Reference a common `MxnSpeiAccountInfo.yaml` schema
3. Use `$ref: ./BeneficiaryOneOf.yaml` for beneficiary instead of inline definition
4. Field `clabe` should be `clabeNumber` (matches existing `ClabeAccountInfo.yaml`)
Expected structure:
```yaml
allOf:
- $ref: ./BaseExternalAccountInfo.yaml
- $ref: ../common/MxnSpeiAccountInfo.yaml
- type: object
required:
- beneficiary
properties:
beneficiary:
$ref: ./BeneficiaryOneOf.yaml
```
<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>
How can I resolve this? If you propose a fix, please make it concise.| type: object | ||
| title: InrUpiAccountInfo | ||
| description: Required fields for USD -> INR corridor via Upi | ||
| required: | ||
| - accountType | ||
| - beneficiary | ||
| - fullName | ||
| - vpa | ||
| properties: | ||
| accountType: | ||
| type: string | ||
| enum: | ||
| - INR_UPI_ACCOUNT | ||
| example: INR_UPI_ACCOUNT | ||
| fullName: | ||
| type: string | ||
| description: Full name of the beneficiary | ||
| example: John Michael Doe | ||
| vpa: | ||
| type: string | ||
| description: Virtual Payment Address (UPI) | ||
| example: john@upi | ||
| beneficiary: | ||
| oneOf: | ||
| - $ref: ./IndividualBeneficiary.yaml | ||
| - $ref: ./BusinessBeneficiary.yaml | ||
| discriminator: | ||
| propertyName: beneficiaryType | ||
| mapping: | ||
| INDIVIDUAL: ./IndividualBeneficiary.yaml | ||
| BUSINESS: ./BusinessBeneficiary.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Schema structure doesn't follow existing patterns. All other external account schemas use allOf with BaseExternalAccountInfo and a common schema ref (see UpiAccountExternalAccountInfo.yaml). This schema should:
- Use
allOfpattern withBaseExternalAccountInfo.yaml - Reference a common
InrUpiAccountInfo.yamlschema in../common/ - Use
$ref: ./BeneficiaryOneOf.yamlfor beneficiary instead of inline definition fullNameshould not be duplicated in both top-level and beneficiary (beneficiary already has this field)
Expected structure:
allOf:
- $ref: ./BaseExternalAccountInfo.yaml
- $ref: ../common/InrUpiAccountInfo.yaml
- type: object
required:
- beneficiary
properties:
beneficiary:
$ref: ./BeneficiaryOneOf.yamlNote: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/external_accounts/InrUpiAccountInfo.yaml
Line: 1:31
Comment:
Schema structure doesn't follow existing patterns. All other external account schemas use `allOf` with `BaseExternalAccountInfo` and a common schema ref (see `UpiAccountExternalAccountInfo.yaml`). This schema should:
1. Use `allOf` pattern with `BaseExternalAccountInfo.yaml`
2. Reference a common `InrUpiAccountInfo.yaml` schema in `../common/`
3. Use `$ref: ./BeneficiaryOneOf.yaml` for beneficiary instead of inline definition
4. `fullName` should not be duplicated in both top-level and beneficiary (beneficiary already has this field)
Expected structure:
```yaml
allOf:
- $ref: ./BaseExternalAccountInfo.yaml
- $ref: ../common/InrUpiAccountInfo.yaml
- type: object
required:
- beneficiary
properties:
beneficiary:
$ref: ./BeneficiaryOneOf.yaml
```
<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>
How can I resolve this? If you propose a fix, please make it concise.| - title: MxnSpeiAccountInfo | ||
| $ref: ./MxnSpeiAccountInfo.yaml | ||
| - title: InrUpiAccountInfo | ||
| $ref: ./InrUpiAccountInfo.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing updates to related schemas. Adding MXN_SPEI_ACCOUNT and INR_UPI_ACCOUNT types requires updates to:
ExternalAccountType.yaml- add enum valuesBaseExternalAccountInfo.yaml- add discriminator mappings
Without these updates, the new account types won't be recognized as valid values.
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml
Line: 34:37
Comment:
Missing updates to related schemas. Adding `MXN_SPEI_ACCOUNT` and `INR_UPI_ACCOUNT` types requires updates to:
1. `ExternalAccountType.yaml` - add enum values
2. `BaseExternalAccountInfo.yaml` - add discriminator mappings
Without these updates, the new account types won't be recognized as valid values.
How can I resolve this? If you propose a fix, please make it concise.
Auto-synced external account schemas from webdev.
These schemas are generated from VASP adapter field definitions in sparkcore.
Please review the changes before merging.