Skip to content

[PROD RELEASE] Certificate Forms, Payment Enhancements & AWS S3 File Upload Integration #23

Merged
Ethical-Ralph merged 24 commits intoproductionfrom
develop
Dec 18, 2025
Merged

[PROD RELEASE] Certificate Forms, Payment Enhancements & AWS S3 File Upload Integration #23
Ethical-Ralph merged 24 commits intoproductionfrom
develop

Conversation

@Ethical-Ralph
Copy link
Collaborator

Description

Added schemas and validations for marriage, death, and birth certificate forms
Implemented department-specific payment configuration and multi-API key support
Introduced ExpressionResolverService for dynamic schema expressions
Integrated AWS S3 file uploads.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

sajclarke and others added 24 commits December 16, 2025 13:58
feat: add schema for get marriage certificate form
feat: add death certificate form schema
feat(payment): implement department-specific API key management and configuration
…-schema

Chore: Change field definitions and add new fields
- Added FileModule, FileController, and FileService to handle file uploads.
- Implemented ApiFile decorator for file upload handling.
- Created ParseFile pipe for file validation (size limit).
- Introduced AttachmentDTO for file metadata.
- Updated configuration to include S3 bucket details.
- Added AWS SDK dependencies for S3 and SES.
- Updated app module to include FileModule.
- Enhanced common DTOs and pipes to support new functionality.
…nal-fields

fix: make middle names really not required
const content = match[1];
// Look for mathematical operators with proper spacing or clear mathematical context
// This is more specific to avoid matching hyphens in identifiers like "get-birth-certificate"
const pattern1 = /\s+[+\-*/]\s+/.test(content); // operators with spaces on both sides

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on
a user-provided value
may run slow on strings with many repetitions of ' '.
const pattern3 = /[+\-*/]\s*formData\./.test(content); // operator followed by formData
const pattern4 = /[+\-*/]\s*db:/.test(content); // operator followed by db reference
const pattern5 = /\)\s*[+\-*/]\s*/.test(content); // operator after closing parenthesis
const pattern6 = /\s*[+\-*/]\s*\(/.test(content); // operator before opening parenthesis

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on
a user-provided value
may run slow on strings with many repetitions of ' '.
*/
private extractDepartmentFromReference(reference: string): string | null {
// Check if reference follows the department format
const match = reference.match(/^([A-Z_]+)-(.+)-(.+)$/);

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data High

This
regular expression
that depends on
a user-provided value
may run slow on strings starting with 'A-a-' and with many repetitions of 'a-a'.
This
regular expression
that depends on
a user-provided value
may run slow on strings starting with 'A-a-' and with many repetitions of 'a-a'.
This
regular expression
that depends on
a user-provided value
may run slow on strings starting with 'A-a-' and with many repetitions of 'a-a'.
@Ethical-Ralph Ethical-Ralph merged commit bbfa756 into production Dec 18, 2025
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants