Skip to content

Commit

Permalink
Fix introspection query policy types (#340)
Browse files Browse the repository at this point in the history
Introspection query policy operates like a BasePolicy
  • Loading branch information
thewizarodofoz authored Aug 5, 2021
1 parent 8e0fae6 commit 3e787bc
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 31 deletions.
2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "stitch-cli",
"version": "0.0.18",
"version": "0.0.19",
"author": "Aviv Rozenboim @AvivRubys",
"repository": "Soluto/stitch",
"homepage": "https://github.com/Soluto/stitch",
Expand Down
8 changes: 4 additions & 4 deletions cli/src/client/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GraphQLClient, gql } from 'graphql-request';
import { BasePolicyInput, IntrospectionQueryPolicyInput, ResourceGroupInput } from './types';
import { BasePolicyInput, ResourceGroupInput } from './types';

export interface RequestInit {
body?: BodyInit | null;
Expand Down Expand Up @@ -52,15 +52,15 @@ const ValidateBasePolicyQuery = gql`
`;

const UploadIntrospectionQueryPolicyMutation = gql`
mutation UploadIntrospectionQueryPolicyMutation($introspectionQueryPolicy: IntrospectionQueryPolicyInput!) {
mutation UploadIntrospectionQueryPolicyMutation($introspectionQueryPolicy: BasePolicyInput!) {
result: updateIntrospectionQueryPolicy(input: $introspectionQueryPolicy) {
success
}
}
`;

const ValidateIntrospectionQueryPolicyQuery = gql`
query ValidateIntrospectionQueryPolicyQuery($introspectionQueryPolicy: IntrospectionQueryPolicyInput!) {
query ValidateIntrospectionQueryPolicyQuery($introspectionQueryPolicy: BasePolicyInput!) {
result: validateIntrospectionQueryPolicy(input: $introspectionQueryPolicy) {
success
}
Expand Down Expand Up @@ -122,7 +122,7 @@ export async function uploadBasePolicy(
}

export async function uploadIntrospectionQueryPolicy(
introspectionQueryPolicy: IntrospectionQueryPolicyInput,
introspectionQueryPolicy: BasePolicyInput,
options: {
registryUrl: string;
dryRun?: boolean;
Expand Down
4 changes: 2 additions & 2 deletions cli/src/client/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ export type MutationUpdateBasePolicyArgs = {
};

export type MutationUpdateIntrospectionQueryPolicyArgs = {
input: IntrospectionQueryPolicyInput;
input: BasePolicyInput;
};

export type SchemaInput = {
Expand Down Expand Up @@ -167,7 +167,7 @@ export type BasePolicyInput = {
args?: Maybe<Scalars['JSONObject']>;
};

export type IntrospectionQueryPolicyInput = {
export type BasePolicyInput = {
namespace: Scalars['String'];
name: Scalars['String'];
args?: Maybe<Scalars['JSONObject']>;
Expand Down
4 changes: 2 additions & 2 deletions cli/src/commands/apply/introspection-query-policy.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { promises as fs } from 'fs';
import { safeLoad } from 'js-yaml';
import Command, { flags } from '@oclif/command';
import { IntrospectionQueryPolicyInput, uploadIntrospectionQueryPolicy } from '../../client';
import { BasePolicyInput, uploadIntrospectionQueryPolicy } from '../../client';
import getEnvInfo from '../../utils/get-env-info';

export default class ApplyIntrospectionQueryPolicy extends Command {
Expand Down Expand Up @@ -34,7 +34,7 @@ export default class ApplyIntrospectionQueryPolicy extends Command {
try {
this.log(`${dryRun ? 'Verifying' : 'Uploading'} introspection query policy from ${args.resourcePath}...`);
const introspectionQueryPolicyContent = await fs.readFile(args.resourcePath, { encoding: 'utf8' });
const introspectionQueryPolicy = safeLoad(introspectionQueryPolicyContent) as IntrospectionQueryPolicyInput;
const introspectionQueryPolicy = safeLoad(introspectionQueryPolicyContent) as BasePolicyInput;

const {
result: { success },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ function wrapWithPolicyValidation(field: GraphQLField<unknown, RequestContext>)
const {
resourceGroup: { introspectionQueryPolicy, basePolicy },
policyExecutor,
} = (context as unknown) as RequestContext;
} = context as unknown as RequestContext;

let policy = introspectionQueryPolicy;

Expand Down
5 changes: 2 additions & 3 deletions services/src/modules/registry-schema/resolvers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { IResolvers } from 'graphql-tools';
import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
import {
BasePolicyInput,
IntrospectionQueryPolicyInput,
DefaultUpstreamInput,
PolicyInput,
ResourceGroupInput,
Expand Down Expand Up @@ -74,7 +73,7 @@ const resolvers: IResolvers = {
validateBasePolicy: (_, args: { input: BasePolicyInput }, context) =>
handleUpdateResourceGroupRequest({ basePolicy: args.input }, context, true),

validateIntrospectionQueryPolicy: (_, args: { input: IntrospectionQueryPolicyInput }, context) =>
validateIntrospectionQueryPolicy: (_, args: { input: BasePolicyInput }, context) =>
handleUpdateResourceGroupRequest({ introspectionQueryPolicy: args.input }, context, true),

validateDefaultUpstream: (_, args: { input: DefaultUpstreamInput }, context) =>
Expand Down Expand Up @@ -102,7 +101,7 @@ const resolvers: IResolvers = {
updateBasePolicy: (_, args: { input: BasePolicyInput }, context) =>
handleUpdateResourceGroupRequest({ basePolicy: args.input }, context),

updateIntrospectionQueryPolicy: (_, args: { input: IntrospectionQueryPolicyInput }, context) =>
updateIntrospectionQueryPolicy: (_, args: { input: BasePolicyInput }, context) =>
handleUpdateResourceGroupRequest({ introspectionQueryPolicy: args.input }, context),

setDefaultUpstream: (_, args: { input: DefaultUpstreamInput }, context) =>
Expand Down
18 changes: 3 additions & 15 deletions services/src/modules/registry-schema/typedefs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,6 @@ export default gql`
args: JSONObject
}
type IntrospectionQueryPolicy {
namespace: String!
name: String!
args: JSONObject
}
type RemoteSchema {
url: String!
schema: String!
Expand Down Expand Up @@ -122,7 +116,7 @@ export default gql`
policy(metadata: ResourceMetadataInput!, fromGatewayResources: Boolean): Policy
policies(fromGatewayResources: Boolean): [Policy!]!
basePolicy(fromGatewayResources: Boolean): BasePolicy
introspectionQueryPolicy(fromGatewayResources: Boolean): IntrospectionQueryPolicy
introspectionQueryPolicy(fromGatewayResources: Boolean): BasePolicy
remoteSchemas: [RemoteSchema!]!
remoteSchema(url: String!): RemoteSchema
Expand All @@ -133,7 +127,7 @@ export default gql`
validateUpstreamClientCredentials(input: [UpstreamClientCredentialsInput!]!): Result
validatePolicies(input: [PolicyInput!]!): Result
validateBasePolicy(input: BasePolicyInput!): Result
validateIntrospectionQueryPolicy(input: IntrospectionQueryPolicyInput!): Result
validateIntrospectionQueryPolicy(input: BasePolicyInput!): Result
validateDefaultUpstream(input: DefaultUpstreamInput!): Result
}
Expand All @@ -146,7 +140,7 @@ export default gql`
updateUpstreamClientCredentials(input: [UpstreamClientCredentialsInput!]!): Result
updatePolicies(input: [PolicyInput!]!): Result
updateBasePolicy(input: BasePolicyInput!): Result
updateIntrospectionQueryPolicy(input: IntrospectionQueryPolicyInput!): Result
updateIntrospectionQueryPolicy(input: BasePolicyInput!): Result
setDefaultUpstream(input: DefaultUpstreamInput!): Result
deleteResources(input: ResourceGroupMetadataInput!): Result
Expand Down Expand Up @@ -251,10 +245,4 @@ export default gql`
name: String!
args: JSONObject
}
input IntrospectionQueryPolicyInput {
namespace: String!
name: String!
args: JSONObject
}
`;
4 changes: 2 additions & 2 deletions services/src/modules/registry-schema/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export interface ResourceGroupInput {
upstreamClientCredentials?: UpstreamClientCredentialsInput[];
policies?: PolicyInput[];
basePolicy?: BasePolicyInput;
introspectionQueryPolicy?: IntrospectionQueryPolicyInput;
introspectionQueryPolicy?: BasePolicyInput;
defaultUpstream?: DefaultUpstreamInput;
}

Expand Down Expand Up @@ -102,7 +102,7 @@ export interface BasePolicyInput {
args?: PolicyArgsObject;
}

export interface IntrospectionQueryPolicyInput {
export interface BasePolicyInput {
namespace: string;
name: string;
args?: PolicyArgsObject;
Expand Down
2 changes: 1 addition & 1 deletion services/tests/helpers/registry-request-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const updateBasePolicyMutation = print(gql`
`);

export const updateIntrospectionQueryPolicyMutation = print(gql`
mutation UpdateIntrospectionQueryPolicy($introspectionQueryPolicy: IntrospectionQueryPolicyInput!) {
mutation UpdateIntrospectionQueryPolicy($introspectionQueryPolicy: BasePolicyInput!) {
result: updateIntrospectionQueryPolicy(input: $introspectionQueryPolicy) {
success
}
Expand Down

0 comments on commit 3e787bc

Please sign in to comment.