mirror of
https://github.com/unraid/api.git
synced 2026-01-04 15:39:52 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ability to update existing API keys, including name, description, roles, and permissions, through the UI and GraphQL API. - Introduced a modal-based interface for creating and editing API keys with improved role and permission selection. - Added a new API Key Manager page and custom element for centralized API key management. - Enhanced API key listing with detailed views, role badges, permission counters, and copy-to-clipboard functionality. - Introduced reusable dialog components for consistent modal experiences. - Added plugin management capabilities with mutations to add or remove plugins. - Added comprehensive support for managing remote access, network URLs, and API key updates within the GraphQL schema. - **Bug Fixes** - Improved error handling and display for API key creation and update operations. - **Refactor** - Centralized API key modal and editing state management using a dedicated store. - Updated GraphQL queries and mutations to use reusable fragments for API key data. - Removed deprecated or redundant remote access and allowed origins configuration components and queries. - Simplified and updated input types for connect settings and remote access. - **Tests** - Added comprehensive tests for API key update logic and improved coverage for API key loading. - **Chores** - Updated configuration files and cleaned up unused schema and component files. - Added new dialog components and centralized exports for dialogs. - Improved ESLint configuration and import statements for better type handling. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
77 lines
1.3 KiB
TypeScript
77 lines
1.3 KiB
TypeScript
import { graphql } from '~/composables/gql/gql';
|
|
|
|
export const API_KEY_FRAGMENT = graphql(/* GraphQL */ `
|
|
fragment ApiKey on ApiKey {
|
|
id
|
|
name
|
|
description
|
|
createdAt
|
|
roles
|
|
permissions {
|
|
resource
|
|
actions
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const API_KEY_FRAGMENT_WITH_KEY = graphql(/* GraphQL */ `
|
|
fragment ApiKeyWithKey on ApiKeyWithSecret {
|
|
id
|
|
key
|
|
name
|
|
description
|
|
createdAt
|
|
roles
|
|
permissions {
|
|
resource
|
|
actions
|
|
}
|
|
}
|
|
`);
|
|
|
|
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) {
|
|
...ApiKeyWithKey
|
|
}
|
|
}
|
|
}
|
|
`);
|
|
|
|
export const UPDATE_API_KEY = graphql(/* GraphQL */ `
|
|
mutation UpdateApiKey($input: UpdateApiKeyInput!) {
|
|
apiKey {
|
|
update(input: $input) {
|
|
...ApiKeyWithKey
|
|
}
|
|
}
|
|
}
|
|
`);
|
|
|
|
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
|
|
}
|
|
}
|
|
`);
|