1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-25 00:07:47 +01:00
unleash.unleash/src/lib/openapi/spec/admin-features-query-schema.ts
Christopher Kolstad eafba10cac
feature: add query support to features endpoint (#2693)
## About the changes
The deprecated /api/admin/features endpoint supported querying with tag
and namePrefix parameters.

This PR adds this functionality to
/api/admin/projects/<project>/features as well, allowing to replicate
queries that used to work.

Closes #2306

### Important files
src/lib/db/feature-strategy-store.ts
src/test/e2e/stores/feature-strategies-store.e2e.test.ts

## Discussion points
I'm extending our query parameters support for
/api/admin/projects/<projectId>/features endpoint. This will be
reflected in our open-api spec, so I also made an
adminFeaturesQuerySchema for this.

Also, very open for something similar to what we did for the modifyQuery
for the archived parameter, but couldn't come up with a good way to
support subselects using the query builder, it just ended up blowing the
stack. If anyone has a suggestion, I'm all ears.

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
2022-12-16 12:05:18 +01:00

31 lines
869 B
TypeScript

import { FromSchema } from 'json-schema-to-ts';
export const adminFeaturesQuerySchema = {
$id: '#/components/schemas/adminFeaturesQuerySchema',
type: 'object',
additionalProperties: false,
properties: {
tag: {
type: 'array',
items: {
type: 'string',
pattern: '\\w+:\\w+',
},
description:
'Used to filter by tags. For each entry, a TAGTYPE:TAGVALUE is expected',
example: ['simple:mytag'],
},
namePrefix: {
type: 'string',
description:
'A case-insensitive prefix filter for the names of feature toggles',
example: 'demo.part1',
},
},
components: {},
} as const;
export type AdminFeaturesQuerySchema = FromSchema<
typeof adminFeaturesQuerySchema
>;