mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	## 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>
		
			
				
	
	
		
			31 lines
		
	
	
		
			869 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
						|
>;
 |