diff --git a/.changeset/healthy-parrots-move.md b/.changeset/healthy-parrots-move.md
new file mode 100644
index 0000000000..4a00ef8a61
--- /dev/null
+++ b/.changeset/healthy-parrots-move.md
@@ -0,0 +1,5 @@
+---
+'hive': minor
+---
+
+Add search to schema check route
diff --git a/packages/services/api/src/modules/schema/module.graphql.ts b/packages/services/api/src/modules/schema/module.graphql.ts
index 0f5ea13860..bb0c60f2e0 100644
--- a/packages/services/api/src/modules/schema/module.graphql.ts
+++ b/packages/services/api/src/modules/schema/module.graphql.ts
@@ -212,6 +212,7 @@ export default gql`
input SchemaChecksFilter {
failed: Boolean
changed: Boolean
+ text: String
}
type SchemaConnection {
diff --git a/packages/services/storage/src/index.ts b/packages/services/storage/src/index.ts
index 3e1ca34295..a091b36ab8 100644
--- a/packages/services/storage/src/index.ts
+++ b/packages/services/storage/src/index.ts
@@ -4159,7 +4159,7 @@ export async function createStorage(
const limit = args.first ? (args.first > 0 ? Math.min(args.first, 20) : 20) : 20;
- const { failed, changed } = args.filters ?? {};
+ const { failed, changed, text } = args.filters ?? {};
if (args.cursor) {
cursor = decodeCreatedAtAndUUIDIdBasedCursor(args.cursor);
@@ -4208,6 +4208,18 @@ export async function createStorage(
`
: sql``
}
+ ${
+ text
+ ? sql`
+ AND (
+ service_name = ${text}
+ OR safe_schema_changes::text LIKE ${'%' + text + '%'}
+ OR breaking_schema_changes::text LIKE ${'%' + text + '%'}
+ OR meta::text LIKE ${'%' + text + '%'}
+ )
+ `
+ : sql``
+ }
ORDER BY
c."target_id" ASC
, c."created_at" DESC
diff --git a/packages/web/app/src/components/v2/input.tsx b/packages/web/app/src/components/v2/input.tsx
index 9c0ba09ece..0923f49685 100644
--- a/packages/web/app/src/components/v2/input.tsx
+++ b/packages/web/app/src/components/v2/input.tsx
@@ -33,11 +33,6 @@ export const Input = forwardRef<
className={clsx(
'relative flex items-center gap-4 rounded-sm border border-gray-700 bg-gray-800 text-sm font-medium focus-within:ring',
isInvalid ? 'text-red-500 caret-white ring-red-500' : 'text-white',
- {
- large: 'h-[50px] px-4 py-[18px]',
- medium: 'px-4 py-2.5',
- small: 'px-3 py-[5px]',
- }[size],
onClear && 'pr-1',
className,
)}
@@ -45,7 +40,14 @@ export const Input = forwardRef<
{prefix}
>(
+ node => {
+ void navigate({
+ search: {
+ ...search,
+ filter_text: node.target.value || undefined,
+ },
+ });
+ },
+ 400,
+ { maxWait: 5000 },
+ );
+
return (
<>
@@ -326,6 +348,34 @@ function ChecksPageContent(props: {
id="filter-toggle-status-failed"
/>
+
+
+
+
{hasFilteredSchemaChecks ? (
diff --git a/packages/web/app/src/router.tsx b/packages/web/app/src/router.tsx
index cd018fb864..ad6a0058cf 100644
--- a/packages/web/app/src/router.tsx
+++ b/packages/web/app/src/router.tsx
@@ -784,10 +784,13 @@ const targetExplorerUnusedRoute = createRoute({
const targetChecksRoute = createRoute({
validateSearch: zodValidator(
- z.object({
- filter_changed: z.boolean().default(false),
- filter_failed: z.boolean().default(false),
- }),
+ z
+ .object({
+ filter_changed: z.boolean().default(false),
+ filter_failed: z.boolean().default(false),
+ filter_text: z.string().nullish(),
+ })
+ .nullish(),
),
getParentRoute: () => targetRoute,
path: 'checks',
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9ae26c83ae..9d79a6f7b9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16517,8 +16517,8 @@ snapshots:
dependencies:
'@aws-crypto/sha256-browser': 3.0.0
'@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/client-sso-oidc': 3.596.0
- '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)
+ '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0)
+ '@aws-sdk/client-sts': 3.596.0
'@aws-sdk/core': 3.592.0
'@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)
'@aws-sdk/middleware-host-header': 3.577.0
@@ -16625,11 +16625,11 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-sso-oidc@3.596.0':
+ '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)':
dependencies:
'@aws-crypto/sha256-browser': 3.0.0
'@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)
+ '@aws-sdk/client-sts': 3.596.0
'@aws-sdk/core': 3.592.0
'@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)
'@aws-sdk/middleware-host-header': 3.577.0
@@ -16668,6 +16668,7 @@ snapshots:
'@smithy/util-utf8': 3.0.0
tslib: 2.8.1
transitivePeerDependencies:
+ - '@aws-sdk/client-sts'
- aws-crt
'@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)':
@@ -16801,11 +16802,11 @@ snapshots:
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)':
+ '@aws-sdk/client-sts@3.596.0':
dependencies:
'@aws-crypto/sha256-browser': 3.0.0
'@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/client-sso-oidc': 3.596.0
+ '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0)
'@aws-sdk/core': 3.592.0
'@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)
'@aws-sdk/middleware-host-header': 3.577.0
@@ -16844,7 +16845,6 @@ snapshots:
'@smithy/util-utf8': 3.0.0
tslib: 2.8.1
transitivePeerDependencies:
- - '@aws-sdk/client-sso-oidc'
- aws-crt
'@aws-sdk/client-sts@3.723.0':
@@ -16958,7 +16958,7 @@ snapshots:
'@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)':
dependencies:
- '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)
+ '@aws-sdk/client-sts': 3.596.0
'@aws-sdk/credential-provider-env': 3.587.0
'@aws-sdk/credential-provider-http': 3.596.0
'@aws-sdk/credential-provider-process': 3.587.0
@@ -17077,7 +17077,7 @@ snapshots:
'@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)':
dependencies:
- '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)
+ '@aws-sdk/client-sts': 3.596.0
'@aws-sdk/types': 3.577.0
'@smithy/property-provider': 3.1.11
'@smithy/types': 3.7.2
@@ -17252,7 +17252,7 @@ snapshots:
'@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)':
dependencies:
- '@aws-sdk/client-sso-oidc': 3.596.0
+ '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0)
'@aws-sdk/types': 3.577.0
'@smithy/property-provider': 3.1.11
'@smithy/shared-ini-file-loader': 3.1.12