* feat: multiple auth instances * fix: auth setup + strategy initialization * feat: admin auth - add strategy * feat: redirect on login - group setting * feat: oauth2 generic - props definitions * feat: new login UI (wip) * feat: new login UI (wip) * feat: admin security login settings * feat: tabset editor indicators + print view improvements * fix: code styling
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
| # ===============================================
 | |
| # GROUPS
 | |
| # ===============================================
 | |
| 
 | |
| extend type Query {
 | |
|   groups: GroupQuery
 | |
| }
 | |
| 
 | |
| extend type Mutation {
 | |
|   groups: GroupMutation
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # QUERIES
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type GroupQuery {
 | |
|   list(
 | |
|     filter: String
 | |
|     orderBy: String
 | |
|   ): [GroupMinimal] @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| 
 | |
|   single(
 | |
|     id: Int!
 | |
|   ): Group @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # MUTATIONS
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type GroupMutation {
 | |
|   create(
 | |
|     name: String!
 | |
|   ): GroupResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| 
 | |
|   update(
 | |
|     id: Int!
 | |
|     name: String!
 | |
|     redirectOnLogin: String!
 | |
|     permissions: [String]!
 | |
|     pageRules: [PageRuleInput]!
 | |
|   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| 
 | |
|   delete(
 | |
|     id: Int!
 | |
|   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| 
 | |
|   assignUser(
 | |
|     groupId: Int!
 | |
|     userId: Int!
 | |
|   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| 
 | |
|   unassignUser(
 | |
|     groupId: Int!
 | |
|     userId: Int!
 | |
|   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # TYPES
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type GroupResponse {
 | |
|   responseResult: ResponseStatus!
 | |
|   group: Group
 | |
| }
 | |
| 
 | |
| type GroupMinimal {
 | |
|   id: Int!
 | |
|   name: String!
 | |
|   isSystem: Boolean!
 | |
|   userCount: Int
 | |
|   createdAt: Date!
 | |
|   updatedAt: Date!
 | |
| }
 | |
| 
 | |
| type Group {
 | |
|   id: Int!
 | |
|   name: String!
 | |
|   isSystem: Boolean!
 | |
|   redirectOnLogin: String
 | |
|   permissions: [String]!
 | |
|   pageRules: [PageRule]
 | |
|   users: [UserMinimal]
 | |
|   createdAt: Date!
 | |
|   updatedAt: Date!
 | |
| }
 | |
| 
 | |
| type PageRule {
 | |
|   id: String!
 | |
|   deny: Boolean!
 | |
|   match: PageRuleMatch!
 | |
|   roles: [String]!
 | |
|   path: String!
 | |
|   locales: [String]!
 | |
| }
 | |
| 
 | |
| input PageRuleInput {
 | |
|   id: String!
 | |
|   deny: Boolean!
 | |
|   match: PageRuleMatch!
 | |
|   roles: [String]!
 | |
|   path: String!
 | |
|   locales: [String]!
 | |
| }
 | |
| 
 | |
| enum PageRuleMatch {
 | |
|   START
 | |
|   EXACT
 | |
|   END
 | |
|   REGEX
 | |
|   TAG
 | |
| }
 |