@cyc-seattle/platform 1.42.1 → 1.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/planning/types.d.ts +0 -4
- package/dist/schema/index.d.ts +10 -93
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ app owns. The apps that run on it live in their own repos, such as
|
|
|
12
12
|
| [`infra`](stacks/infra) | The VPC, the cluster subnet and its Cloud NAT on a static address, the private services peering, the prod and dev Cloud SQL instances, the DNS zones, Artifact Registry and its cleanup policy, the GKE Autopilot cluster, the shared Gateway, its address, certificates, and dev's DNS records, the `dev` and `prod` namespaces with their quotas and network policies, dev's RBAC, the prod Job alerts, the log exclusions, the public website's Firebase Hosting site, and each environment's `platform/outputs.json` | `deploy-runner`, from Actions after approval. A deployer, with `mise run deploy`, when breaking glass. |
|
|
13
13
|
| [`smoke`](stacks/smoke) | One `WebService` in dev, at `smoke.dev.cycsail.team`, for the integration tests | `deploy-dev`, from Actions for each queued PR. A deployer, with `PULUMI_STACK=dev mise run deploy`, when breaking glass. |
|
|
14
14
|
| [`backend`](stacks/backend) | Directus, with the schema apply from `schemas/`, its roles, policies, and permission rules, the sync and website build machine users, its OIDC client, and MCP, and the clubspot-sync and gsuite-sync CronJobs, with dev's Clubspot and Workspace fakes | `deploy-dev`, from Actions for each queued PR, and `deploy-runner` on a push to `main`, after `infra`. |
|
|
15
|
-
| [`authentik`](stacks/authentik) | Authentik, the sign-in at `login.<domain>`: its server and worker, database, secrets, and A record, dev's Mailpit, and its own configuration: flows, stages, policies, the Google source, the `staff` group, and the Directus OIDC and portal proxy applications
|
|
15
|
+
| [`authentik`](stacks/authentik) | Authentik, the sign-in at `login.<domain>`: its server and worker, database, secrets, and A record, dev's Mailpit, and its own configuration: flows, stages, policies, the Google source, the `staff` group, the `Admins` superuser group, and the Directus OIDC and portal proxy applications | `deploy-dev`, from Actions for each queued PR, and `deploy-runner` on a push to `main`, after `backend`. |
|
|
16
16
|
|
|
17
17
|
## @cyc-seattle/platform
|
|
18
18
|
|
package/dist/planning/types.d.ts
CHANGED
|
@@ -199,18 +199,14 @@ export interface PlanStaffLevel extends Versioned {
|
|
|
199
199
|
name: string;
|
|
200
200
|
pay_type: "hourly" | "volunteer";
|
|
201
201
|
hourly_rate_cents: number | null;
|
|
202
|
-
/** `qualifications` ids. */
|
|
203
|
-
qualifications: Id[] | null;
|
|
204
202
|
}
|
|
205
203
|
export interface PlanSalariedPosition extends Versioned {
|
|
206
204
|
name: string;
|
|
207
205
|
annual_salary_cents: number;
|
|
208
206
|
paid_hours_per_year: number | null;
|
|
209
|
-
qualifications: Id[] | null;
|
|
210
207
|
ga_share: number | null;
|
|
211
208
|
/** The pool that takes the salary its hours don't charge to programs. */
|
|
212
209
|
remainder_pool_id: Id | null;
|
|
213
|
-
form_990_line: string | null;
|
|
214
210
|
/** What it's paid an hour to coach an offering that pays it by the hour, instead of the offering's level. */
|
|
215
211
|
hourly_coaching_rate_cents?: number | null;
|
|
216
212
|
}
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
export interface Schema {
|
|
3
3
|
accounts: Accounts[];
|
|
4
4
|
audit_findings: AuditFindings[];
|
|
5
|
-
boat_charters: BoatCharters[];
|
|
6
5
|
boat_classes: BoatClasses[];
|
|
7
|
-
boat_damage: BoatDamage[];
|
|
8
|
-
boat_stage_changes: BoatStageChanges[];
|
|
9
6
|
boats: Boats[];
|
|
10
7
|
catalog_offerings: CatalogOfferings[];
|
|
11
8
|
clubspot_camps: ClubspotCamps[];
|
|
@@ -72,8 +69,6 @@ export interface Schema {
|
|
|
72
69
|
registrations: Registrations[];
|
|
73
70
|
resource_kinds: ResourceKinds[];
|
|
74
71
|
schools: Schools[];
|
|
75
|
-
storage_agreements: StorageAgreements[];
|
|
76
|
-
storage_spaces: StorageSpaces[];
|
|
77
72
|
sync_leases: SyncLeases[];
|
|
78
73
|
sync_runs: SyncRuns[];
|
|
79
74
|
sync_tasks: SyncTasks[];
|
|
@@ -131,20 +126,6 @@ export interface AuditFindings {
|
|
|
131
126
|
/** Identifies the finding, so a dismissal survives the next run. */
|
|
132
127
|
fingerprint: string;
|
|
133
128
|
}
|
|
134
|
-
/** Which sailor charters which boat, and when. */
|
|
135
|
-
export interface BoatCharters {
|
|
136
|
-
id: string;
|
|
137
|
-
boat_id: string | Boats;
|
|
138
|
-
person_id: string | People;
|
|
139
|
-
/** The charter product the boat's costs go to. */
|
|
140
|
-
product_id: string | Products;
|
|
141
|
-
starts_on: string;
|
|
142
|
-
ends_on: string;
|
|
143
|
-
/** What the sailor pays for the charter. In cents: 12500 is $125.00. */
|
|
144
|
-
fee_cents: number;
|
|
145
|
-
/** A link to the signed charter agreement. */
|
|
146
|
-
agreement_url: string | null;
|
|
147
|
-
}
|
|
148
129
|
/** A kind of boat offerings sail, such as Opti or 420. */
|
|
149
130
|
export interface BoatClasses {
|
|
150
131
|
id: string;
|
|
@@ -153,50 +134,24 @@ export interface BoatClasses {
|
|
|
153
134
|
/** Dry-storage area one boat takes. */
|
|
154
135
|
footprint_sq_ft: string | null;
|
|
155
136
|
}
|
|
156
|
-
/**
|
|
157
|
-
export interface BoatDamage {
|
|
158
|
-
id: string;
|
|
159
|
-
boat_id: string | Boats;
|
|
160
|
-
occurred_on: string;
|
|
161
|
-
description: string;
|
|
162
|
-
status: "open" | "repaired" | "written_off";
|
|
163
|
-
/** What the repair cost, or will cost. In cents: 12500 is $125.00. */
|
|
164
|
-
repair_cost_cents: number | null;
|
|
165
|
-
/** The sailor charged for the damage, if anyone is. */
|
|
166
|
-
person_id: string | People | null;
|
|
167
|
-
/** What the sailor was charged. In cents: 12500 is $125.00. */
|
|
168
|
-
charged_cents: number | null;
|
|
169
|
-
}
|
|
170
|
-
/** When each boat started its charter life, moved to its beginner life, or retired. A boat's stage is its latest row. Add a row to move a boat on. A row can't be changed once it's added. */
|
|
171
|
-
export interface BoatStageChanges {
|
|
172
|
-
id: string;
|
|
173
|
-
boat_id: string | Boats;
|
|
174
|
-
/** A boat wears down over its charter life, then its beginner life. */
|
|
175
|
-
stage: "charter" | "beginner" | "retired";
|
|
176
|
-
changed_on: string;
|
|
177
|
-
/** Why it moved, such as hull damage. */
|
|
178
|
-
note: string | null;
|
|
179
|
-
}
|
|
180
|
-
/** Each of CSC's own boats. Sailors' own boats aren't listed here. */
|
|
137
|
+
/** Each boat CSC owns, for planning the year. Sailors' own boats aren't listed here. */
|
|
181
138
|
export interface Boats {
|
|
182
139
|
id: string;
|
|
183
140
|
boat_class_id: string | BoatClasses;
|
|
184
|
-
sail_number: string | null;
|
|
185
|
-
/** The hull identification number on the transom. */
|
|
186
|
-
hull_number: string;
|
|
187
141
|
/** The boat's name, if it has one. */
|
|
188
142
|
name: string | null;
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
|
|
143
|
+
sail_number: string | null;
|
|
144
|
+
/** The hull identification number on the transom, if it's known. */
|
|
145
|
+
hull_number: string | null;
|
|
146
|
+
/** What the boat is worth. In cents: 12500 is $125.00. */
|
|
147
|
+
value_cents: number | null;
|
|
192
148
|
/** The day CSC got the boat. */
|
|
193
149
|
acquired_on: string | null;
|
|
194
150
|
/** The day the boat first sailed in a program. */
|
|
195
151
|
in_service_on: string | null;
|
|
196
|
-
|
|
152
|
+
/** The day CSC stopped using the boat. Empty while it's still in use. */
|
|
153
|
+
retired_on: string | null;
|
|
197
154
|
note: string | null;
|
|
198
|
-
stage_changes: (string | BoatStageChanges)[];
|
|
199
|
-
damage: (string | BoatDamage)[];
|
|
200
155
|
}
|
|
201
156
|
/** An offering of a program that plans and Clubspot both point to, such as "J-Pod · fall practices" or "Summer camp · week 3". Each Financial Plan sets its own price, schedule, and size for it, and Clubspot's offerings are linked to it. */
|
|
202
157
|
export interface CatalogOfferings {
|
|
@@ -728,8 +683,6 @@ export interface PlanOfferings {
|
|
|
728
683
|
/** Stays the same across versions. Copy it where another row asks for this one's Key. */
|
|
729
684
|
key: string;
|
|
730
685
|
product_id: string | Products;
|
|
731
|
-
/** Which of the program's catalog offerings this is, such as "J-Pod · fall practices". It's how Clubspot's sign-ups find it, in every Financial Plan. */
|
|
732
|
-
catalog_offering_id: string | CatalogOfferings | null;
|
|
733
686
|
name: string;
|
|
734
687
|
season_term: string | null;
|
|
735
688
|
starts_on: string;
|
|
@@ -961,13 +914,10 @@ export interface PlanSalariedPositions {
|
|
|
961
914
|
/** In cents: 12500 is $125.00. */
|
|
962
915
|
annual_salary_cents: number;
|
|
963
916
|
paid_hours_per_year: number | null;
|
|
964
|
-
/** The qualifications this position needs. Add each one's ID, from the end of its page's web address. */
|
|
965
|
-
qualifications: string[] | null;
|
|
966
917
|
/** The share of its salary that is general and administrative (G&A). 0.2 means 20%. */
|
|
967
918
|
ga_share: string | null;
|
|
968
919
|
/** The pool that takes the salary its hours don't charge to programs. */
|
|
969
920
|
remainder_pool_id: string | PlanPools | null;
|
|
970
|
-
form_990_line: string | null;
|
|
971
921
|
/** What this position is paid an hour to coach an offering that pays its salaried coach by the hour, instead of the offering's coach level. Leave empty to use the level. In cents: 12500 is $125.00. */
|
|
972
922
|
hourly_coaching_rate_cents: number | null;
|
|
973
923
|
}
|
|
@@ -982,8 +932,6 @@ export interface PlanStaffLevels {
|
|
|
982
932
|
pay_type: "hourly" | "volunteer";
|
|
983
933
|
/** In cents: 12500 is $125.00. */
|
|
984
934
|
hourly_rate_cents: number | null;
|
|
985
|
-
/** The qualifications this level needs. Add each one's ID, from the end of its page's web address. */
|
|
986
|
-
qualifications: string[] | null;
|
|
987
935
|
}
|
|
988
936
|
/** A trip an offering travels for, such as an away regatta. */
|
|
989
937
|
export interface PlanTrips {
|
|
@@ -1029,8 +977,6 @@ export interface Plans {
|
|
|
1029
977
|
/** The plan year. Fiscal year N ends in calendar year N. Can't change once the plan has a saved copy. */
|
|
1030
978
|
fiscal_year: number;
|
|
1031
979
|
name: string;
|
|
1032
|
-
/** A plan with a saved copy can't be deleted, so archive it instead. */
|
|
1033
|
-
archived: boolean;
|
|
1034
980
|
/** The plan's copy in each Financial Plan. */
|
|
1035
981
|
versions: (string | PlanVersions)[];
|
|
1036
982
|
}
|
|
@@ -1132,35 +1078,6 @@ export interface Schools {
|
|
|
1132
1078
|
/** Other ways families write this school on their Clubspot forms. An answer matching the name or one of these, ignoring capitals and punctuation and counting a run of spaces as one, is this school. Anything else is kept as their own words. */
|
|
1133
1079
|
aliases: string[] | null;
|
|
1134
1080
|
}
|
|
1135
|
-
/** Storage CSC sells to sailors for their own boats. */
|
|
1136
|
-
export interface StorageAgreements {
|
|
1137
|
-
id: string;
|
|
1138
|
-
person_id: string | People;
|
|
1139
|
-
storage_space_id: string | StorageSpaces;
|
|
1140
|
-
/** The storage product the agreement is sold as. */
|
|
1141
|
-
product_id: string | Products;
|
|
1142
|
-
/** The sailor's own boat, such as its class and sail number. */
|
|
1143
|
-
boat_description: string | null;
|
|
1144
|
-
starts_on: string;
|
|
1145
|
-
/** Empty while the agreement runs on. */
|
|
1146
|
-
ends_on: string | null;
|
|
1147
|
-
/** What the sailor pays for the agreement. In cents: 12500 is $125.00. */
|
|
1148
|
-
fee_cents: number;
|
|
1149
|
-
/** A link to the signed storage agreement. */
|
|
1150
|
-
agreement_url: string | null;
|
|
1151
|
-
}
|
|
1152
|
-
/** The racks and deck space CSC keeps boats on, each for one boat class. */
|
|
1153
|
-
export interface StorageSpaces {
|
|
1154
|
-
id: string;
|
|
1155
|
-
kind: "rack" | "deck";
|
|
1156
|
-
/** Where it is, such as Rack 3 or North deck. */
|
|
1157
|
-
location: string;
|
|
1158
|
-
boat_class_id: string | BoatClasses;
|
|
1159
|
-
/** How many boats it holds. */
|
|
1160
|
-
capacity: number;
|
|
1161
|
-
/** The floor space it takes. */
|
|
1162
|
-
footprint_sq_ft: string | null;
|
|
1163
|
-
}
|
|
1164
1081
|
/** Which syncs are running now. A sync holds its queue while it runs, so a second run waits its turn. Written by the syncs. */
|
|
1165
1082
|
export interface SyncLeases {
|
|
1166
1083
|
id: string;
|
|
@@ -1206,8 +1123,8 @@ export interface SyncTasks {
|
|
|
1206
1123
|
export interface Venues {
|
|
1207
1124
|
id: string;
|
|
1208
1125
|
name: string;
|
|
1209
|
-
/** The organization that runs it. */
|
|
1210
|
-
organization_id: string | Organizations;
|
|
1126
|
+
/** The organization that runs it. Leave it empty for a public marina. */
|
|
1127
|
+
organization_id: string | Organizations | null;
|
|
1211
1128
|
/** Its street address, or where to find it. */
|
|
1212
1129
|
address: string | null;
|
|
1213
1130
|
/** Other names it goes by, such as on a regatta's notice of race. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyc-seattle/platform",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.43.0",
|
|
4
4
|
"description": "Pulumi components for CYC's shared Google Cloud platform: WebService, the platform outputs reader, and the stacks that build the platform",
|
|
5
5
|
"author": "CYC Community Sailing Center",
|
|
6
6
|
"license": "Apache-2.0",
|