mirror of
https://github.com/unraid/api.git
synced 2026-01-05 16:09:49 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * API Key Authorization flow with consent screen, callback support, and a Tools page. * Schema-driven API Key creation UI with permission presets, templates, and Developer Authorization Link. * Effective Permissions preview and a new multi-select permission control. * **UI Improvements** * Mask/toggle API keys, copy-to-clipboard with toasts, improved select labels, new label styles, tab wrapping, and accordionized color controls. * **Documentation** * Public guide for the API Key authorization flow and scopes added. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
74 lines
1.4 KiB
TypeScript
74 lines
1.4 KiB
TypeScript
import { graphql } from '~/composables/gql/gql';
|
|
|
|
export const API_KEY_FRAGMENT = graphql(/* GraphQL */ `
|
|
fragment ApiKey on ApiKey {
|
|
id
|
|
key
|
|
name
|
|
description
|
|
createdAt
|
|
roles
|
|
permissions {
|
|
resource
|
|
actions
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const API_KEY_FRAGMENT_WITH_KEY = API_KEY_FRAGMENT;
|
|
|
|
export const GET_API_KEYS = graphql(/* GraphQL */ `
|
|
query ApiKeys {
|
|
apiKeys {
|
|
...ApiKey
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const CREATE_API_KEY = graphql(/* GraphQL */ `
|
|
mutation CreateApiKey($input: CreateApiKeyInput!) {
|
|
apiKey {
|
|
create(input: $input) {
|
|
...ApiKey
|
|
}
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const UPDATE_API_KEY = graphql(/* GraphQL */ `
|
|
mutation UpdateApiKey($input: UpdateApiKeyInput!) {
|
|
apiKey {
|
|
update(input: $input) {
|
|
...ApiKey
|
|
}
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const DELETE_API_KEY = graphql(/* GraphQL */ `
|
|
mutation DeleteApiKey($input: DeleteApiKeyInput!) {
|
|
apiKey {
|
|
delete(input: $input)
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const GET_API_KEY_META = graphql(/* GraphQL */ `
|
|
query ApiKeyMeta {
|
|
apiKeyPossibleRoles
|
|
apiKeyPossiblePermissions {
|
|
resource
|
|
actions
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const PREVIEW_EFFECTIVE_PERMISSIONS = graphql(/* GraphQL */ `
|
|
query PreviewEffectivePermissions($roles: [Role!], $permissions: [AddPermissionInput!]) {
|
|
previewEffectivePermissions(roles: $roles, permissions: $permissions) {
|
|
resource
|
|
actions
|
|
}
|
|
}
|
|
`);
|