@cyc-seattle/platform 1.42.2 → 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 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 | `deploy-dev`, from Actions for each queued PR, and `deploy-runner` on a push to `main`, after `backend`. |
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
 
@@ -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
  }
@@ -3,6 +3,7 @@ export interface Schema {
3
3
  accounts: Accounts[];
4
4
  audit_findings: AuditFindings[];
5
5
  boat_classes: BoatClasses[];
6
+ boats: Boats[];
6
7
  catalog_offerings: CatalogOfferings[];
7
8
  clubspot_camps: ClubspotCamps[];
8
9
  clubspot_classes: ClubspotClasses[];
@@ -133,6 +134,25 @@ export interface BoatClasses {
133
134
  /** Dry-storage area one boat takes. */
134
135
  footprint_sq_ft: string | null;
135
136
  }
137
+ /** Each boat CSC owns, for planning the year. Sailors' own boats aren't listed here. */
138
+ export interface Boats {
139
+ id: string;
140
+ boat_class_id: string | BoatClasses;
141
+ /** The boat's name, if it has one. */
142
+ name: string | null;
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;
148
+ /** The day CSC got the boat. */
149
+ acquired_on: string | null;
150
+ /** The day the boat first sailed in a program. */
151
+ in_service_on: string | null;
152
+ /** The day CSC stopped using the boat. Empty while it's still in use. */
153
+ retired_on: string | null;
154
+ note: string | null;
155
+ }
136
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. */
137
157
  export interface CatalogOfferings {
138
158
  id: string;
@@ -663,8 +683,6 @@ export interface PlanOfferings {
663
683
  /** Stays the same across versions. Copy it where another row asks for this one's Key. */
664
684
  key: string;
665
685
  product_id: string | Products;
666
- /** 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. */
667
- catalog_offering_id: string | CatalogOfferings | null;
668
686
  name: string;
669
687
  season_term: string | null;
670
688
  starts_on: string;
@@ -896,13 +914,10 @@ export interface PlanSalariedPositions {
896
914
  /** In cents: 12500 is $125.00. */
897
915
  annual_salary_cents: number;
898
916
  paid_hours_per_year: number | null;
899
- /** The qualifications this position needs. Add each one's ID, from the end of its page's web address. */
900
- qualifications: string[] | null;
901
917
  /** The share of its salary that is general and administrative (G&A). 0.2 means 20%. */
902
918
  ga_share: string | null;
903
919
  /** The pool that takes the salary its hours don't charge to programs. */
904
920
  remainder_pool_id: string | PlanPools | null;
905
- form_990_line: string | null;
906
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. */
907
922
  hourly_coaching_rate_cents: number | null;
908
923
  }
@@ -917,8 +932,6 @@ export interface PlanStaffLevels {
917
932
  pay_type: "hourly" | "volunteer";
918
933
  /** In cents: 12500 is $125.00. */
919
934
  hourly_rate_cents: number | null;
920
- /** The qualifications this level needs. Add each one's ID, from the end of its page's web address. */
921
- qualifications: string[] | null;
922
935
  }
923
936
  /** A trip an offering travels for, such as an away regatta. */
924
937
  export interface PlanTrips {
@@ -964,8 +977,6 @@ export interface Plans {
964
977
  /** The plan year. Fiscal year N ends in calendar year N. Can't change once the plan has a saved copy. */
965
978
  fiscal_year: number;
966
979
  name: string;
967
- /** A plan with a saved copy can't be deleted, so archive it instead. */
968
- archived: boolean;
969
980
  /** The plan's copy in each Financial Plan. */
970
981
  versions: (string | PlanVersions)[];
971
982
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyc-seattle/platform",
3
- "version": "1.42.2",
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",