| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import type { JsonValue } from '@shared/types'
- import { apiRequest } from './client'
- export interface ManagedUser {
- id: string
- username: string
- role: 'admin' | 'user'
- enabled: boolean
- mustChangePassword: boolean
- createdAt: number
- updatedAt: number
- }
- export async function listUsers(): Promise<ManagedUser[]> {
- const response = await apiRequest<{ items: ManagedUser[] }>('/api/app/admin/users')
- return response.items
- }
- export async function createUser(username: string, password: string): Promise<ManagedUser> {
- return apiRequest('/api/app/admin/users', {
- method: 'POST', body: { username, password } as unknown as JsonValue,
- })
- }
- export async function updateUser(id: string, input: { enabled?: boolean; password?: string }): Promise<ManagedUser> {
- return apiRequest(`/api/app/admin/users/${encodeURIComponent(id)}`, {
- method: 'PATCH', body: input as unknown as JsonValue,
- })
- }
- export async function deleteUser(id: string): Promise<void> {
- await apiRequest(`/api/app/admin/users/${encodeURIComponent(id)}`, { method: 'DELETE', body: {} })
- }
- export async function setUpstreamCredentials(username: string, password: string): Promise<void> {
- await apiRequest('/api/app/admin/upstream-credentials', {
- method: 'PUT', body: { username, password } as unknown as JsonValue,
- })
- }
- export interface UpstreamConnectionStatus {
- endpoint: string
- authMode: 'unknown' | 'loopback-token' | 'loopback-direct' | 'password'
- networkScope: 'local' | 'network'
- webNetworkScope: 'local' | 'network'
- ready: boolean
- error?: string
- lastVerifiedAt?: number
- }
- export function getUpstreamConnectionStatus(): Promise<UpstreamConnectionStatus> {
- return apiRequest('/api/app/admin/upstream-connection')
- }
- export interface AllowedHostsSettings {
- source: 'none' | 'file' | 'environment'
- hosts: string[]
- editableHosts: string[]
- environmentHosts: string[]
- configurationError?: string
- }
- export function getAllowedHostsSettings(): Promise<AllowedHostsSettings> {
- return apiRequest('/api/app/system/allowed-hosts')
- }
- export function saveAllowedHostsSettings(hosts: string[]): Promise<AllowedHostsSettings> {
- return apiRequest('/api/app/system/allowed-hosts', {
- method: 'PUT', body: { hosts } as unknown as JsonValue,
- })
- }
|