From 257ea563a95f32ac694c437926431d584db175f8 Mon Sep 17 00:00:00 2001 From: gearnode Date: Sun, 16 Mar 2025 18:43:58 +0100 Subject: [PATCH] Add service account people kind Signed-off-by: gearnode --- apps/console/src/pages/CreatePeoplePage.tsx | 16 ++++++++++++- apps/console/src/pages/PeopleListPage.tsx | 2 ++ apps/console/src/pages/PeopleOverviewPage.tsx | 23 ++++++++++++++---- ...ePeoplePageCreatePeopleMutation.graphql.ts | 4 ++-- .../PeopleListPage_peoples.graphql.ts | 4 ++-- .../PeopleOverviewPageQuery.graphql.ts | 4 ++-- ...verviewPageUpdatePeopleMutation.graphql.ts | 4 ++-- pkg/coredata/migrations/20250316T183600Z.sql | 1 + pkg/coredata/people_kind.go | 5 ++++ pkg/server/api/console/v1/schema.graphql | 4 ++++ pkg/server/api/console/v1/schema/schema.go | 24 ++++++++++++------- 11 files changed, 69 insertions(+), 22 deletions(-) create mode 100644 pkg/coredata/migrations/20250316T183600Z.sql diff --git a/apps/console/src/pages/CreatePeoplePage.tsx b/apps/console/src/pages/CreatePeoplePage.tsx index d75b6021b..1080a975a 100644 --- a/apps/console/src/pages/CreatePeoplePage.tsx +++ b/apps/console/src/pages/CreatePeoplePage.tsx @@ -75,7 +75,7 @@ function CreatePeoplePageContent() { fullName: "", primaryEmailAddress: "", additionalEmailAddresses: [] as string[], - kind: "EMPLOYEE" as "EMPLOYEE" | "CONTRACTOR", + kind: "EMPLOYEE" as "EMPLOYEE" | "CONTRACTOR" | "SERVICE_ACCOUNT", }); const handleFieldChange = (field: keyof typeof formData, value: unknown) => { @@ -255,6 +255,20 @@ function CreatePeoplePageContent() { > Contractor + diff --git a/apps/console/src/pages/PeopleListPage.tsx b/apps/console/src/pages/PeopleListPage.tsx index 7c5b78fb2..ccb2f6611 100644 --- a/apps/console/src/pages/PeopleListPage.tsx +++ b/apps/console/src/pages/PeopleListPage.tsx @@ -227,6 +227,8 @@ function PeopleListContent({ ? "Employee" : person?.kind === "CONTRACTOR" ? "Contractor" + : person?.kind === "SERVICE_ACCOUNT" + ? "Service Account" : "Vendor"} + @@ -305,7 +318,7 @@ function PeopleOverviewPageFallback() { export default function PeopleOverviewPage() { const { peopleId } = useParams(); const [queryRef, loadQuery] = useQueryLoader( - peopleOverviewPageQuery, + peopleOverviewPageQuery ); useEffect(() => { diff --git a/apps/console/src/pages/__generated__/CreatePeoplePageCreatePeopleMutation.graphql.ts b/apps/console/src/pages/__generated__/CreatePeoplePageCreatePeopleMutation.graphql.ts index 28ebebcf6..c25300424 100644 --- a/apps/console/src/pages/__generated__/CreatePeoplePageCreatePeopleMutation.graphql.ts +++ b/apps/console/src/pages/__generated__/CreatePeoplePageCreatePeopleMutation.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<6c8122e298c594879d1cd54bf297c11b>> * @lightSyntaxTransform * @nogrep */ @@ -9,7 +9,7 @@ // @ts-nocheck import { ConcreteRequest } from 'relay-runtime'; -export type PeopleKind = "CONTRACTOR" | "EMPLOYEE"; +export type PeopleKind = "CONTRACTOR" | "EMPLOYEE" | "SERVICE_ACCOUNT"; export type CreatePeopleInput = { additionalEmailAddresses?: ReadonlyArray | null | undefined; fullName: string; diff --git a/apps/console/src/pages/__generated__/PeopleListPage_peoples.graphql.ts b/apps/console/src/pages/__generated__/PeopleListPage_peoples.graphql.ts index 63cc8b67f..b2bdbdaf4 100644 --- a/apps/console/src/pages/__generated__/PeopleListPage_peoples.graphql.ts +++ b/apps/console/src/pages/__generated__/PeopleListPage_peoples.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<876cec536b2a9c33f73956901b0b5b1b>> * @lightSyntaxTransform * @nogrep */ @@ -9,7 +9,7 @@ // @ts-nocheck import { ReaderFragment } from 'relay-runtime'; -export type PeopleKind = "CONTRACTOR" | "EMPLOYEE"; +export type PeopleKind = "CONTRACTOR" | "EMPLOYEE" | "SERVICE_ACCOUNT"; import { FragmentRefs } from "relay-runtime"; export type PeopleListPage_peoples$data = { readonly id: string; diff --git a/apps/console/src/pages/__generated__/PeopleOverviewPageQuery.graphql.ts b/apps/console/src/pages/__generated__/PeopleOverviewPageQuery.graphql.ts index 459344921..4722bdc9d 100644 --- a/apps/console/src/pages/__generated__/PeopleOverviewPageQuery.graphql.ts +++ b/apps/console/src/pages/__generated__/PeopleOverviewPageQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<12b9bffcb7d1b32602592f77810dd9cb>> + * @generated SignedSource<<4ff94d3e8f2e4c6c0d8c3ad43abee2d6>> * @lightSyntaxTransform * @nogrep */ @@ -9,7 +9,7 @@ // @ts-nocheck import { ConcreteRequest } from 'relay-runtime'; -export type PeopleKind = "CONTRACTOR" | "EMPLOYEE"; +export type PeopleKind = "CONTRACTOR" | "EMPLOYEE" | "SERVICE_ACCOUNT"; export type PeopleOverviewPageQuery$variables = { peopleId: string; }; diff --git a/apps/console/src/pages/__generated__/PeopleOverviewPageUpdatePeopleMutation.graphql.ts b/apps/console/src/pages/__generated__/PeopleOverviewPageUpdatePeopleMutation.graphql.ts index ceee20e88..d058abb88 100644 --- a/apps/console/src/pages/__generated__/PeopleOverviewPageUpdatePeopleMutation.graphql.ts +++ b/apps/console/src/pages/__generated__/PeopleOverviewPageUpdatePeopleMutation.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<6ab9b7473f7ac19f7ed988d416de4ccd>> + * @generated SignedSource<<4da12585c00c981fc6f2a6f74d5d3ef6>> * @lightSyntaxTransform * @nogrep */ @@ -9,7 +9,7 @@ // @ts-nocheck import { ConcreteRequest } from 'relay-runtime'; -export type PeopleKind = "CONTRACTOR" | "EMPLOYEE"; +export type PeopleKind = "CONTRACTOR" | "EMPLOYEE" | "SERVICE_ACCOUNT"; export type UpdatePeopleInput = { additionalEmailAddresses?: ReadonlyArray | null | undefined; expectedVersion: number; diff --git a/pkg/coredata/migrations/20250316T183600Z.sql b/pkg/coredata/migrations/20250316T183600Z.sql new file mode 100644 index 000000000..ee7bd88a8 --- /dev/null +++ b/pkg/coredata/migrations/20250316T183600Z.sql @@ -0,0 +1 @@ +ALTER TYPE people_kind ADD VALUE 'SERVICE_ACCOUNT'; \ No newline at end of file diff --git a/pkg/coredata/people_kind.go b/pkg/coredata/people_kind.go index 40f289173..c9fd54c84 100644 --- a/pkg/coredata/people_kind.go +++ b/pkg/coredata/people_kind.go @@ -26,6 +26,7 @@ type ( const ( PeopleKindEmployee PeopleKind = iota PeopleKindContractor + PeopleKindServiceAccount ) func (ps PeopleKind) MarshalText() ([]byte, error) { @@ -40,6 +41,8 @@ func (ps *PeopleKind) UnmarshalText(data []byte) error { *ps = PeopleKindEmployee case PeopleKindContractor.String(): *ps = PeopleKindContractor + case PeopleKindServiceAccount.String(): + *ps = PeopleKindServiceAccount default: return fmt.Errorf("invalid PeopleKind value: %q", val) } @@ -55,6 +58,8 @@ func (ts PeopleKind) String() string { val = "EMPLOYEE" case PeopleKindContractor: val = "CONTRACTOR" + case PeopleKindServiceAccount: + val = "SERVICE_ACCOUNT" } return val diff --git a/pkg/server/api/console/v1/schema.graphql b/pkg/server/api/console/v1/schema.graphql index acb92daf5..13337c4d8 100644 --- a/pkg/server/api/console/v1/schema.graphql +++ b/pkg/server/api/console/v1/schema.graphql @@ -69,6 +69,10 @@ enum PeopleKind @goEnum( value: "github.com/getprobo/probo/pkg/coredata.PeopleKindContractor" ) + SERVICE_ACCOUNT + @goEnum( + value: "github.com/getprobo/probo/pkg/coredata.PeopleKindServiceAccount" + ) } enum ControlImportance diff --git a/pkg/server/api/console/v1/schema/schema.go b/pkg/server/api/console/v1/schema/schema.go index 0cbd3a6de..311fba689 100644 --- a/pkg/server/api/console/v1/schema/schema.go +++ b/pkg/server/api/console/v1/schema/schema.go @@ -2151,6 +2151,10 @@ enum PeopleKind @goEnum( value: "github.com/getprobo/probo/pkg/coredata.PeopleKindContractor" ) + SERVICE_ACCOUNT + @goEnum( + value: "github.com/getprobo/probo/pkg/coredata.PeopleKindServiceAccount" + ) } enum ControlImportance @@ -19793,12 +19797,14 @@ func (ec *executionContext) marshalNPeopleKind2githubᚗcomᚋgetproboᚋprobo var ( unmarshalNPeopleKind2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐPeopleKind = map[string]coredata.PeopleKind{ - "EMPLOYEE": coredata.PeopleKindEmployee, - "CONTRACTOR": coredata.PeopleKindContractor, + "EMPLOYEE": coredata.PeopleKindEmployee, + "CONTRACTOR": coredata.PeopleKindContractor, + "SERVICE_ACCOUNT": coredata.PeopleKindServiceAccount, } marshalNPeopleKind2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐPeopleKind = map[coredata.PeopleKind]string{ - coredata.PeopleKindEmployee: "EMPLOYEE", - coredata.PeopleKindContractor: "CONTRACTOR", + coredata.PeopleKindEmployee: "EMPLOYEE", + coredata.PeopleKindContractor: "CONTRACTOR", + coredata.PeopleKindServiceAccount: "SERVICE_ACCOUNT", } ) @@ -20891,12 +20897,14 @@ func (ec *executionContext) marshalOPeopleKind2ᚖgithubᚗcomᚋgetproboᚋprob var ( unmarshalOPeopleKind2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐPeopleKind = map[string]coredata.PeopleKind{ - "EMPLOYEE": coredata.PeopleKindEmployee, - "CONTRACTOR": coredata.PeopleKindContractor, + "EMPLOYEE": coredata.PeopleKindEmployee, + "CONTRACTOR": coredata.PeopleKindContractor, + "SERVICE_ACCOUNT": coredata.PeopleKindServiceAccount, } marshalOPeopleKind2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐPeopleKind = map[coredata.PeopleKind]string{ - coredata.PeopleKindEmployee: "EMPLOYEE", - coredata.PeopleKindContractor: "CONTRACTOR", + coredata.PeopleKindEmployee: "EMPLOYEE", + coredata.PeopleKindContractor: "CONTRACTOR", + coredata.PeopleKindServiceAccount: "SERVICE_ACCOUNT", } )