Skip to content
Merged
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
4876bc1
fix(admin-ui): service status shows accurate values on dashboard inst…
faisalsiddique4400 Dec 8, 2025
1645e8b
merged with main
faisalsiddique4400 Dec 31, 2025
0f7d375
Merge branch 'main' of github-faisal:GluuFederation/flex into admin-u…
faisalsiddique4400 Jan 1, 2026
4f6653d
feat(admin-ui): update Config API configuration screen with recent ch…
faisalsiddique4400 Jan 2, 2026
8b97ae7
Merge branch 'main' of github-faisal:GluuFederation/flex into admin-u…
faisalsiddique4400 Jan 2, 2026
223e64b
coderabbit suggestions
faisalsiddique4400 Jan 2, 2026
80239a9
coderabbit suggestions
faisalsiddique4400 Jan 2, 2026
94dc763
coderabbit suggestions
faisalsiddique4400 Jan 2, 2026
dfec8a8
coderabbit suggestions
faisalsiddique4400 Jan 2, 2026
0a279c9
coderabbit suggestions
faisalsiddique4400 Jan 2, 2026
50cf5bd
coderabbit suggestions
faisalsiddique4400 Jan 2, 2026
5242d4c
feat(admin-ui): convert Config API Properties to forms with back butt…
faisalsiddique4400 Jan 6, 2026
fde6886
Merge branch 'main' into admin-ui-issue-2559
faisalsiddique4400 Jan 6, 2026
1e3a165
enhancement
faisalsiddique4400 Jan 6, 2026
55c0e8a
Merge branch 'main' of github-faisal:GluuFederation/flex into admin-u…
faisalsiddique4400 Jan 6, 2026
d7d2117
enhancement
faisalsiddique4400 Jan 6, 2026
9aeff7b
Merge branch 'main' of github-faisal:GluuFederation/flex into admin-u…
faisalsiddique4400 Jan 6, 2026
96cae73
Merge branch 'main' of github-faisal:GluuFederation/flex into admin-u…
faisalsiddique4400 Jan 6, 2026
3a2a443
Merge branch 'admin-ui-issue-2559' of github-faisal:GluuFederation/fl…
faisalsiddique4400 Jan 6, 2026
c357401
enhancement
faisalsiddique4400 Jan 7, 2026
58275c0
enhancement
faisalsiddique4400 Jan 7, 2026
e43e456
enhancement
faisalsiddique4400 Jan 7, 2026
45f03d6
enhancement
faisalsiddique4400 Jan 7, 2026
5a374db
enhancement
faisalsiddique4400 Jan 7, 2026
d413bb5
enhancement
faisalsiddique4400 Jan 7, 2026
92905c2
enhancement
faisalsiddique4400 Jan 7, 2026
baa24cf
enhancement
faisalsiddique4400 Jan 7, 2026
4696122
Merge branch 'admin-ui-issue-2559' of github-faisal:GluuFederation/fl…
faisalsiddique4400 Jan 7, 2026
b0a8ce8
feat(admin-ui): convert Auth Server Properties to forms with back but…
faisalsiddique4400 Jan 7, 2026
fe01fce
feat(admin-ui): Resolve conflicts coming in the pr
faisalsiddique4400 Jan 8, 2026
c72fae0
feat(admin-ui): Resolve issues coming in the pr
faisalsiddique4400 Jan 9, 2026
6bee2b7
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
49b972f
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
0418758
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
fa6083d
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
1d27aa0
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
9a375cc
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
39897e3
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 9, 2026
3010122
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 13, 2026
669a04e
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 13, 2026
37db9fa
feat(admin-ui): Resolve comments in the pr
faisalsiddique4400 Jan 13, 2026
a55b980
Merge branch 'main' of github-faisal:GluuFederation/flex into admin-u…
faisalsiddique4400 Jan 20, 2026
e80e454
Merge branch 'main' into admin-ui-issue-2560
faisalsiddique4400 Jan 20, 2026
187f88f
Merge branch 'admin-ui-issue-2560' of github-faisal:GluuFederation/fl…
faisalsiddique4400 Jan 20, 2026
e3bd943
Merge branch 'main' into admin-ui-issue-2560
faisalsiddique4400 Jan 20, 2026
7fb1f05
feat(admin-ui): Resolve comments on the pr
faisalsiddique4400 Jan 21, 2026
263f101
Merge branch 'admin-ui-issue-2560' of github-faisal:GluuFederation/fl…
faisalsiddique4400 Jan 21, 2026
e4f4162
feat(admin-ui): Resolve comments on the pr
faisalsiddique4400 Jan 21, 2026
1369612
feat(admin-ui): Resolve comments on the pr
faisalsiddique4400 Jan 21, 2026
67f3a36
feat(admin-ui): Resolve comments on the pr
faisalsiddique4400 Jan 21, 2026
f4af3ba
feat(admin-ui): Resolve comments on the pr
faisalsiddique4400 Jan 22, 2026
45eeb0b
Merge branch 'main' into admin-ui-issue-2560
faisalsiddique4400 Jan 22, 2026
c124fe6
Merge branch 'main' into admin-ui-issue-2560
faisalsiddique4400 Jan 22, 2026
14d182e
Merge branch 'main' into admin-ui-issue-2560
faisalsiddique4400 Jan 22, 2026
6cd9311
Merge branch 'main' into admin-ui-issue-2560
moabu Jan 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions admin-ui/app/config/openApiSpec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/**
* OpenAPI specification re-export with helper functions.
* Provides stable import path using @/ alias instead of brittle relative paths.
*/
import spec from '../../configApiSpecs.yaml'

export { spec }

export interface SchemaProperty {
type?: string
format?: string
description?: string
items?: SchemaProperty
$ref?: string
enum?: string[]
default?: unknown
}

interface SchemaDefinition {
properties?: Record<string, SchemaProperty>
}

export interface SpecSchema {
components?: {
schemas?: Record<string, SchemaDefinition | undefined>
}
}

/** Get schema properties for a given schema name. Returns empty object if not found. */
export function getSchemaProperties(schemaName: string): Record<string, SchemaProperty> {
const typedSpec = spec as unknown as SpecSchema
return (typedSpec?.components?.schemas?.[schemaName]?.properties ?? {}) as Record<
string,
SchemaProperty
>
}

/** Get AppConfiguration schema properties. Convenience function for common use case. */
export function getAppConfigurationProperties(): Record<string, SchemaProperty> {
return getSchemaProperties('AppConfiguration')
}

export default spec
2 changes: 1 addition & 1 deletion admin-ui/app/routes/Apps/Gluu/GluuInlineInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ const GluuInlineInput = ({
handler(patch)
}
},
[disabled, name, showSaveButtons, path, handler],
[disabled, name, showSaveButtons, isValidPath, path, handler],
)

const onAccept = useCallback(() => {
Expand Down
10 changes: 5 additions & 5 deletions admin-ui/app/routes/Apps/Gluu/GluuTabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ TabPanel.displayName = 'TabPanel'
const isNavigationTab = (tab: TabItem | null): tab is NavigationTab => {
return Boolean(
tab &&
typeof tab === 'object' &&
'name' in tab &&
'path' in tab &&
typeof tab.path === 'string' &&
tab.path.trim().length > 0,
typeof tab === 'object' &&
'name' in tab &&
'path' in tab &&
typeof tab.path === 'string' &&
tab.path.trim().length > 0,
)
}

Expand Down
5 changes: 5 additions & 0 deletions admin-ui/config/webpack.config.client.dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,11 @@ const webpackConfig: WebpackConfig & { devServer?: DevServerConfig } = {
},
{
test: /\.ya?ml$/,
include: [
config.srcDir,
config.pluginsDir,
path.resolve(__dirname, '..'), // Include root directory for configApiSpecs.yaml
],
use: 'yaml-loader',
},
{
Expand Down
5 changes: 5 additions & 0 deletions admin-ui/config/webpack.config.client.prod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,11 @@ const webpackConfig: WebpackConfig & { devServer?: DevServerConfig } = {
},
{
test: /\.ya?ml$/,
include: [
config.srcDir,
config.pluginsDir,
path.resolve(__dirname, '..'), // Include root directory for configApiSpecs.yaml
],
use: 'yaml-loader',
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import React from 'react'
import { render, screen, waitFor } from '@testing-library/react'
import ConfigPage from './ConfigPage'
import AuthPage from './AuthPage'
import { Provider } from 'react-redux'
import i18n from '../../../../app/i18n'
import { I18nextProvider } from 'react-i18next'
import AppTestWrapper from 'Routes/Apps/Gluu/Tests/Components/AppTestWrapper.test'
import { combineReducers, configureStore } from '@reduxjs/toolkit'

Expand Down Expand Up @@ -161,11 +159,11 @@ const Wrapper = ({ children }) => (
</AppTestWrapper>
)

it('Should render json properties page properly', () => {
render(<ConfigPage configuration={config} permissions={permissions} />, {
it('Should render json properties page properly', async () => {
render(<AuthPage />, {
wrapper: Wrapper,
})
waitFor(() => expect(screen.getByText(config.issuer)).toBeInTheDocument())
await waitFor(() => expect(screen.getByText(config.issuer)).toBeInTheDocument())
expect(screen.getByTestId('issuer')).toHaveValue(config.issuer)
expect(screen.getByTestId('baseEndpoint')).toHaveValue(config.baseEndpoint)
expect(screen.getByTestId('authorizationEndpoint')).toHaveValue(config.authorizationEndpoint)
Expand Down
Loading
Loading