Move Organization, Identity, TrustCenter, and Viewer definitions to include all their connection fields directly, removing all extend type blocks for these hub types from entity files. This eliminates the Relay schemaExtensions constraint where extend type could only target types defined in the main schema file. Entity files now only define their own standalone types and extend type Mutation. Signed-off-by: Émile Ré <emile@getprobo.com>
178 lines
4.5 KiB
GraphQL
178 lines
4.5 KiB
GraphQL
type SCIMConfiguration implements Node {
|
|
id: ID!
|
|
endpointUrl: String! @goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
organization: Organization @goField(forceResolver: true)
|
|
|
|
bridge: SCIMBridge @goField(forceResolver: true)
|
|
|
|
events(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: SCIMEventOrder
|
|
): SCIMEventConnection @goField(forceResolver: true)
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@session(required: PRESENT)
|
|
}
|
|
|
|
type SCIMBridge implements Node {
|
|
id: ID!
|
|
state: SCIMBridgeState!
|
|
scimConfiguration: SCIMConfiguration @goField(forceResolver: true)
|
|
connector: Connector @goField(forceResolver: true)
|
|
type: SCIMBridgeType!
|
|
excludedUserNames: [String!]!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@session(required: PRESENT)
|
|
}
|
|
|
|
type Connector implements Node {
|
|
id: ID!
|
|
provider: ConnectorProvider!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@session(required: PRESENT)
|
|
}
|
|
|
|
enum ConnectorProvider
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.ConnectorProvider") {
|
|
SLACK @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderSlack")
|
|
GOOGLE_WORKSPACE
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderGoogleWorkspace")
|
|
BREX @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderBrex")
|
|
TALLY @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderTally")
|
|
CLOUDFLARE
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderCloudflare")
|
|
}
|
|
|
|
enum SCIMBridgeType
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.SCIMBridgeType") {
|
|
GOOGLE_WORKSPACE @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeTypeGoogleWorkspace")
|
|
}
|
|
|
|
type SCIMBridgeTypeInfo {
|
|
type: SCIMBridgeType!
|
|
oauth2Scopes: [String!]!
|
|
}
|
|
|
|
enum SCIMBridgeState
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.SCIMBridgeState") {
|
|
PENDING @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStatePending")
|
|
ACTIVE @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStateActive")
|
|
FAILED @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStateFailed")
|
|
}
|
|
|
|
type SCIMEvent implements Node {
|
|
id: ID!
|
|
method: String!
|
|
path: String!
|
|
statusCode: Int!
|
|
requestBody: String
|
|
responseBody: String
|
|
errorMessage: String
|
|
userName: String!
|
|
ipAddress: String!
|
|
createdAt: Datetime!
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@session(required: PRESENT)
|
|
}
|
|
|
|
enum SCIMEventOrderField
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.SCIMEventOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.SCIMEventOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
input SCIMEventOrder
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/connect/v1/types.SCIMEventOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: SCIMEventOrderField!
|
|
}
|
|
|
|
type SCIMEventConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/connect/v1/types.SCIMEventConnection"
|
|
) {
|
|
edges: [SCIMEventEdge!]!
|
|
pageInfo: PageInfo!
|
|
totalCount: Int @goField(forceResolver: true)
|
|
}
|
|
|
|
type SCIMEventEdge {
|
|
node: SCIMEvent!
|
|
cursor: CursorKey!
|
|
}
|
|
|
|
extend type Mutation {
|
|
createSCIMConfiguration(
|
|
input: CreateSCIMConfigurationInput!
|
|
): CreateSCIMConfigurationPayload @session(required: PRESENT)
|
|
deleteSCIMConfiguration(
|
|
input: DeleteSCIMConfigurationInput!
|
|
): DeleteSCIMConfigurationPayload @session(required: PRESENT)
|
|
regenerateSCIMToken(
|
|
input: RegenerateSCIMTokenInput!
|
|
): RegenerateSCIMTokenPayload @session(required: PRESENT)
|
|
updateSCIMBridge(
|
|
input: UpdateSCIMBridgeInput!
|
|
): UpdateSCIMBridgePayload @session(required: PRESENT)
|
|
}
|
|
|
|
input CreateSCIMConfigurationInput {
|
|
organizationId: ID!
|
|
connectorId: ID
|
|
}
|
|
|
|
input DeleteSCIMConfigurationInput {
|
|
organizationId: ID!
|
|
scimConfigurationId: ID!
|
|
}
|
|
|
|
input RegenerateSCIMTokenInput {
|
|
organizationId: ID!
|
|
scimConfigurationId: ID!
|
|
}
|
|
|
|
input UpdateSCIMBridgeInput {
|
|
organizationId: ID!
|
|
scimBridgeId: ID!
|
|
excludedUserNames: [String!]!
|
|
}
|
|
|
|
type CreateSCIMConfigurationPayload {
|
|
scimConfiguration: SCIMConfiguration!
|
|
scimBridge: SCIMBridge
|
|
token: String!
|
|
}
|
|
|
|
type DeleteSCIMConfigurationPayload {
|
|
deletedScimConfigurationId: ID!
|
|
}
|
|
|
|
type RegenerateSCIMTokenPayload {
|
|
scimConfiguration: SCIMConfiguration!
|
|
token: String!
|
|
}
|
|
|
|
type UpdateSCIMBridgePayload {
|
|
scimBridge: SCIMBridge!
|
|
}
|