Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d2eaf61
[Issue #317] Support fetching apps in core library (#326)
widal001 Sep 5, 2025
2f06fb8
Changed applications route verb
jcrichlake Feb 2, 2026
24e64ea
feat(core): Adds explicit @Versioning.added()
widal001 Feb 12, 2026
8e7ec54
build: Aligns deps across pnpm workspace
widal001 Feb 12, 2026
a84d8b4
refactor(website): Updates auto-generated docs
widal001 Feb 12, 2026
b554d8f
docs(website): Updates SchemaFormatTabs for models
widal001 Feb 12, 2026
205d738
docs(website): Updates SchemaFormatTabs for fields
widal001 Feb 12, 2026
7f1a723
docs(website): Updates SchemaFormatTabs for filters
widal001 Feb 12, 2026
21d2c1e
refactor(core): Updates NumberComparisonFilter
widal001 Feb 12, 2026
be408c4
refactor(website): Updates auto-generated docs
widal001 Feb 12, 2026
c2256d5
docs(website): Updates SchemaFormatTabs for types
widal001 Feb 12, 2026
bc30992
docs(website): Updates SchemaFormatTabs for responses
widal001 Feb 12, 2026
8b763ee
docs(website): Updates docs for pagination and sorting
widal001 Feb 12, 2026
58e9e95
build(template): Revert accidental change to express-js
widal001 Feb 12, 2026
e33c494
refactor(cli): Auto-updates OpenAPI specs in CLI
widal001 Feb 12, 2026
06016ae
refactor(ts-sdk): Updates NumberComparisonFilterSchema
widal001 Feb 12, 2026
c34f4d2
fix: Vulnerability in root-level pnpm lockfile
widal001 Feb 12, 2026
f7db527
ci(website): Fix formatting issue
widal001 Feb 12, 2026
d1018e8
refactor(core): Fix version added for Competition schemas
widal001 Feb 12, 2026
22a4b1c
refactor(website): Update default OpenAPI docs
widal001 Feb 12, 2026
0d638a7
docs(core): Update JSON schema example for Event
widal001 Feb 13, 2026
dbc9724
build: Adds changesets for CLI and core
widal001 Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .changeset/hot-pets-marry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
"@common-grants/cli": minor
---

Supports checking APIs against the v0.3.0 CommonGrants OpenAPI spec.

Enables CLI users to check against the v0.3.0 CommonGrants OpenAPI spec. This will be the new default version when running `cg check spec`

Users can still validate against previous versions of the CommonGrants OpenAPI spec by specifying the `--protocol-version` flag. For example:

```bash
cg check spec openapi.yaml --protocol-version 0.2.0
```
10 changes: 10 additions & 0 deletions .changeset/moody-shoes-lay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@common-grants/core": minor
---

Adds models and routes for application reviews.

- Adds new OpenAPI tag for "Application reviews"
- Adds new route `POST /common-grants/applications/search/` and a set of supporting models
- Changes `NumberComparisonFilter.operator` type to `ComparisonOperators | EquivalenceOperators` so that we can filter using `eq` and `neq` in addition to `ge`, `gte`, etc.
- Adds explicit `@Versioning.added()` decorator to all schemas, so that the version in which a schema was added is explicitly defined, rather than defaulting to v0.1.0
7 changes: 3 additions & 4 deletions lib/changelog-emitter/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@
}
},
"peerDependencies": {
"@typespec/compiler": "^1.0.0",
"@typespec/versioning": ">=0.70.0"
"@typespec/compiler": "catalog:",
"@typespec/versioning": "catalog:"
},
"devDependencies": {
"@types/node": "latest",
"@typespec/compiler": "^1.5.0",
"@types/node": "catalog:",
"@typespec/prettier-plugin-typespec": "^1.5.0",
"eslint": "^9.15.0",
"@eslint/js": "^9.15.0",
Expand Down
6 changes: 4 additions & 2 deletions lib/cli/lib/openapi/openapi.0.1.0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ tags:
- name: Competitions
description: Endpoints related to competitions, which are distinct application processes for the same funding opportunity
- name: Applications
description: Endpoints related to applications for a given competition
description: Endpoints related to submitting applications for a given competition
- name: Application Reviews
description: Endpoints related to reviewing applications for a given competition
- name: Forms
description: Endpoints related to forms
- name: required
Expand Down Expand Up @@ -819,7 +821,7 @@ components:
description: Key dates and events in the opportunity's timeline, such as when the opportunity is posted and closes
example:
postDate:
name: Application posted date
name: Opportunity posted date
eventType: singleDate
date: '2024-01-15'
description: Opportunity is posted publicly
Expand Down
63 changes: 61 additions & 2 deletions lib/cli/lib/openapi/openapi.0.2.0.yaml
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes to the previous OpenAPI versions are mainly to the examples and descriptions, which we can't version like we can the fields and schemas themselves.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ tags:
- name: Competitions
description: Endpoints related to competitions, which are distinct application processes for the same funding opportunity
- name: Applications
description: Endpoints related to applications for a given competition
description: Endpoints related to submitting applications for a given competition
- name: Application Reviews
description: Endpoints related to reviewing applications for a given competition
- name: Forms
description: Endpoints related to forms
- name: required
Expand Down Expand Up @@ -1161,6 +1163,40 @@ components:
submittedAt: null
createdAt: '2021-01-01T00:00:00Z'
lastModifiedAt: '2021-01-01T00:00:00Z'
customFields:
attachments:
name: attachments
fieldType: object
value:
contacts:
downloadUrl: https://example.com/file.pdf
name: example.pdf
description: A PDF file with instructions
sizeInBytes: 1000
mimeType: application/pdf
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
budget:
downloadUrl: https://example.com/excel.xlsx
name: excel.xlsx
description: The excel file for the application
sizeInBytes: 1000
mimeType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
description: The attachments for the application
applicationZipFile:
name: applicationZipFile
fieldType: object
value:
downloadUrl: https://example.com/application.zip
name: application.zip
description: The zip file for the application
sizeInBytes: 50000
mimeType: application/zip
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
description: The zip file for the application
CommonGrants.Models.CompetitionBase:
type: object
required:
Expand Down Expand Up @@ -1311,6 +1347,8 @@ components:
field: emails.primary
phone:
field: phones.primary
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
formB:
id: b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a
name: Form A
Expand Down Expand Up @@ -1365,6 +1403,8 @@ components:
field: emails.primary
phone:
field: phones.primary
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
validation:
required:
- formA
Expand Down Expand Up @@ -1442,6 +1482,8 @@ components:
field: emails.primary
phone:
field: phones.primary
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
formB:
id: b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a
name: Form A
Expand Down Expand Up @@ -1496,6 +1538,8 @@ components:
field: emails.primary
phone:
field: phones.primary
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
validation:
required:
- formA
Expand Down Expand Up @@ -1547,6 +1591,7 @@ components:
additionalProperties:
$ref: '#/components/schemas/CommonGrants.Fields.Event'
description: The date the competition was created
description: Key dates in the competition's timeline.
example:
openDate:
name: Open Date
Expand All @@ -1567,6 +1612,8 @@ components:
required:
- id
- name
- createdAt
- lastModifiedAt
properties:
id:
allOf:
Expand Down Expand Up @@ -1606,6 +1653,16 @@ components:
additionalProperties:
$ref: '#/components/schemas/CommonGrants.Fields.CustomField'
description: Custom attributes about the form itself, not custom fields within the form.
createdAt:
type: string
format: date-time
description: The timestamp (in UTC) at which the record was created.
readOnly: true
lastModifiedAt:
type: string
format: date-time
description: The timestamp (in UTC) at which the record was last modified.
readOnly: true
description: A form for collecting data from a user.
example:
id: b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a
Expand Down Expand Up @@ -1661,6 +1718,8 @@ components:
field: emails.primary
phone:
field: phones.primary
createdAt: '2025-01-01T17:01:01'
lastModifiedAt: '2025-01-02T17:30:00'
CommonGrants.Models.FormJsonSchema:
type: object
additionalProperties: {}
Expand Down Expand Up @@ -2124,7 +2183,7 @@ components:
description: Key dates and events in the opportunity's timeline, such as when the opportunity is posted and closes
example:
postDate:
name: Application posted date
name: Opportunity posted date
eventType: singleDate
date: '2024-01-15'
description: Opportunity is posted publicly
Expand Down
Loading