Refactor rls backend simplify add tests (#17357)

## Context
Removing full CRUD to RLS since we are actually using an upsert only
over the role resolver, this removes a lot of unused code (could be
re-added later but unlikely). Simplified the folder arch at the same
time
Add simple integration tests to RLS
This commit is contained in:
Weiko
2026-01-22 16:44:18 +01:00
committed by GitHub
parent 669da1a87d
commit 296a3099db
35 changed files with 1085 additions and 1453 deletions
@@ -1037,27 +1037,6 @@ export type CreateRouteTriggerInput = {
serverlessFunctionId: Scalars['String'];
};
export type CreateRowLevelPermissionPredicateGroupInput = {
logicalOperator: RowLevelPermissionPredicateGroupLogicalOperator;
objectMetadataId: Scalars['String'];
parentRowLevelPermissionPredicateGroupId?: InputMaybe<Scalars['String']>;
positionInRowLevelPermissionPredicateGroup?: InputMaybe<Scalars['Float']>;
roleId: Scalars['String'];
};
export type CreateRowLevelPermissionPredicateInput = {
fieldMetadataId: Scalars['String'];
objectMetadataId: Scalars['String'];
operand: RowLevelPermissionPredicateOperand;
positionInRowLevelPermissionPredicateGroup?: InputMaybe<Scalars['Float']>;
roleId: Scalars['String'];
rowLevelPermissionPredicateGroupId?: InputMaybe<Scalars['String']>;
subFieldName?: InputMaybe<Scalars['String']>;
value?: InputMaybe<Scalars['JSON']>;
workspaceMemberFieldMetadataId?: InputMaybe<Scalars['String']>;
workspaceMemberSubFieldName?: InputMaybe<Scalars['String']>;
};
export type CreateServerlessFunctionInput = {
builtHandlerPath?: InputMaybe<Scalars['String']>;
code?: InputMaybe<Scalars['JSON']>;
@@ -1245,14 +1224,6 @@ export type DeleteOneObjectInput = {
id: Scalars['UUID'];
};
export type DeleteRowLevelPermissionPredicateGroupInput = {
id: Scalars['String'];
};
export type DeleteRowLevelPermissionPredicateInput = {
id: Scalars['String'];
};
export type DeleteSsoInput = {
identityProviderId: Scalars['UUID'];
};
@@ -2020,8 +1991,6 @@ export type Mutation = {
createPageLayoutTab: PageLayoutTab;
createPageLayoutWidget: PageLayoutWidget;
createPublicDomain: PublicDomain;
createRowLevelPermissionPredicate: RowLevelPermissionPredicate;
createRowLevelPermissionPredicateGroup: RowLevelPermissionPredicateGroup;
createSAMLIdentityProvider: SetupSsoOutput;
createWebhook: Webhook;
createWorkflowVersionEdge: WorkflowVersionStepChanges;
@@ -2049,8 +2018,6 @@ export type Mutation = {
deleteOneRouteTrigger: RouteTrigger;
deleteOneServerlessFunction: ServerlessFunction;
deletePublicDomain: Scalars['Boolean'];
deleteRowLevelPermissionPredicate: RowLevelPermissionPredicate;
deleteRowLevelPermissionPredicateGroup: RowLevelPermissionPredicateGroup;
deleteSSOIdentityProvider: DeleteSsoOutput;
deleteTwoFactorAuthenticationMethod: DeleteTwoFactorAuthenticationMethodOutput;
deleteUser: User;
@@ -2139,8 +2106,6 @@ export type Mutation = {
updatePageLayoutWidget: PageLayoutWidget;
updatePageLayoutWithTabsAndWidgets: PageLayout;
updatePasswordViaResetToken: InvalidatePasswordOutput;
updateRowLevelPermissionPredicate: RowLevelPermissionPredicate;
updateRowLevelPermissionPredicateGroup: RowLevelPermissionPredicateGroup;
updateUserEmail: Scalars['Boolean'];
updateWebhook?: Maybe<Webhook>;
updateWorkflowRunStep: WorkflowAction;
@@ -2377,16 +2342,6 @@ export type MutationCreatePublicDomainArgs = {
};
export type MutationCreateRowLevelPermissionPredicateArgs = {
input: CreateRowLevelPermissionPredicateInput;
};
export type MutationCreateRowLevelPermissionPredicateGroupArgs = {
input: CreateRowLevelPermissionPredicateGroupInput;
};
export type MutationCreateSamlIdentityProviderArgs = {
input: SetupSamlSsoInput;
};
@@ -2518,16 +2473,6 @@ export type MutationDeletePublicDomainArgs = {
};
export type MutationDeleteRowLevelPermissionPredicateArgs = {
input: DeleteRowLevelPermissionPredicateInput;
};
export type MutationDeleteRowLevelPermissionPredicateGroupArgs = {
input: DeleteRowLevelPermissionPredicateGroupInput;
};
export type MutationDeleteSsoIdentityProviderArgs = {
input: DeleteSsoInput;
};
@@ -2962,16 +2907,6 @@ export type MutationUpdatePasswordViaResetTokenArgs = {
};
export type MutationUpdateRowLevelPermissionPredicateArgs = {
input: UpdateRowLevelPermissionPredicateInput;
};
export type MutationUpdateRowLevelPermissionPredicateGroupArgs = {
input: UpdateRowLevelPermissionPredicateGroupInput;
};
export type MutationUpdateUserEmailArgs = {
newEmail: Scalars['String'];
verifyEmailRedirectPath?: InputMaybe<Scalars['String']>;
@@ -3566,9 +3501,6 @@ export type Query = {
getQueueJobs: QueueJobsResponse;
getQueueMetrics: QueueMetricsData;
getRoles: Array<Role>;
getRowLevelPermissionPredicate?: Maybe<RowLevelPermissionPredicate>;
getRowLevelPermissionPredicateGroups: Array<RowLevelPermissionPredicateGroup>;
getRowLevelPermissionPredicates: Array<RowLevelPermissionPredicate>;
getSSOIdentityProviders: Array<FindAvailableSsoidpOutput>;
getServerlessFunctionSourceCode?: Maybe<Scalars['JSON']>;
getSystemHealthStatus: SystemHealth;
@@ -3803,22 +3735,6 @@ export type QueryGetQueueMetricsArgs = {
};
export type QueryGetRowLevelPermissionPredicateArgs = {
id: Scalars['String'];
};
export type QueryGetRowLevelPermissionPredicateGroupsArgs = {
roleId?: InputMaybe<Scalars['String']>;
};
export type QueryGetRowLevelPermissionPredicatesArgs = {
objectMetadataId?: InputMaybe<Scalars['String']>;
roleId?: InputMaybe<Scalars['String']>;
};
export type QueryGetServerlessFunctionSourceCodeArgs = {
input: GetServerlessFunctionSourceCodeInput;
};
@@ -4739,25 +4655,6 @@ export type UpdateRouteTriggerInputUpdates = {
path: Scalars['String'];
};
export type UpdateRowLevelPermissionPredicateGroupInput = {
id: Scalars['String'];
logicalOperator?: InputMaybe<RowLevelPermissionPredicateGroupLogicalOperator>;
parentRowLevelPermissionPredicateGroupId?: InputMaybe<Scalars['String']>;
positionInRowLevelPermissionPredicateGroup?: InputMaybe<Scalars['Float']>;
};
export type UpdateRowLevelPermissionPredicateInput = {
fieldMetadataId?: InputMaybe<Scalars['String']>;
id: Scalars['String'];
operand?: InputMaybe<RowLevelPermissionPredicateOperand>;
positionInRowLevelPermissionPredicateGroup?: InputMaybe<Scalars['Float']>;
rowLevelPermissionPredicateGroupId?: InputMaybe<Scalars['String']>;
subFieldName?: InputMaybe<Scalars['String']>;
value?: InputMaybe<Scalars['JSON']>;
workspaceMemberFieldMetadataId?: InputMaybe<Scalars['String']>;
workspaceMemberSubFieldName?: InputMaybe<Scalars['String']>;
};
export type UpdateServerlessFunctionInput = {
/** Id of the serverless function to update */
id: Scalars['UUID'];