diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 8eedc3a4504e8..6fc96d4231c83 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -106,7 +106,6 @@
/src/repr/src/row @MaterializeInc/persist
/src/repr-test-util @MaterializeInc/cluster
/src/rocksdb @MaterializeInc/cluster
-/src/s3-datagen @MaterializeInc/cluster
/src/secrets @MaterializeInc/cloud
/src/segment
/src/service @MaterializeInc/cluster
diff --git a/Cargo.lock b/Cargo.lock
index 8a488ba4b23ff..b3d0c2976e19f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1869,15 +1869,6 @@ version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
-[[package]]
-name = "bytefmt"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "590b1af059a21c47d4da7cd11f05e08b1992b58b5b4acf2a5e10d7e53aed3d74"
-dependencies = [
- "regex",
-]
-
[[package]]
name = "bytemuck"
version = "1.25.2"
@@ -6968,23 +6959,13 @@ dependencies = [
name = "mz-durable-cache"
version = "0.0.0"
dependencies = [
- "async-trait",
- "bytes",
"differential-dataflow",
- "futures",
- "itertools 0.14.0",
- "mz-dyncfg",
"mz-ore",
"mz-persist-client",
"mz-persist-types",
- "mz-timely-util",
- "prometheus",
- "prost",
- "serde",
"timely",
"tokio",
"tracing",
- "uuid",
]
[[package]]
@@ -8309,24 +8290,6 @@ dependencies = [
"timely",
]
-[[package]]
-name = "mz-s3-datagen"
-version = "0.0.0"
-dependencies = [
- "anyhow",
- "aws-config",
- "aws-sdk-s3",
- "bytefmt",
- "clap",
- "futures",
- "indicatif",
- "mz-aws-util",
- "mz-ore",
- "tokio",
- "tracing",
- "tracing-subscriber",
-]
-
[[package]]
name = "mz-secrets"
version = "0.0.0"
diff --git a/Cargo.toml b/Cargo.toml
index e72662ef8b42b..bb081dea6479c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -52,7 +52,6 @@ members = [
"src/kafka-util",
"src/license-keys",
"src/materialized",
- "src/materialized",
"src/metabase",
"src/metrics",
"src/metrics-catalog",
@@ -93,7 +92,6 @@ members = [
"src/rocksdb",
"src/rocksdb-types",
"src/row-spine",
- "src/s3-datagen",
"src/secrets",
"src/segment",
"src/server-core",
@@ -220,7 +218,6 @@ default-members = [
"src/rocksdb",
"src/rocksdb-types",
"src/row-spine",
- "src/s3-datagen",
"src/secrets",
"src/segment",
"src/server-core",
@@ -312,7 +309,6 @@ base64 = "0.22.1"
bincode = "1.3.3"
bitflags = "1.3.2"
buildid = "1.0.4"
-bytefmt = "0.1.7"
bytemuck = { version = "1.23.1", features = ["extern_crate_alloc", "latest_stable_rust"] }
byteorder = "1.5"
bytes = "1.11.1"
@@ -346,7 +342,6 @@ dec = "0.4.9"
derivative = "2.2.0"
differential-dataflow = "0.25.0"
differential-dogs3 = "0.25.0"
-digest = "0.10.7"
dirs = "6.0.0"
duckdb = { version = "1.4.3", default-features = false, features = ["native-tls"] }
dynfmt = { version = "0.1.5", features = ["curly"] }
@@ -376,7 +371,6 @@ hickory-resolver = "0.26.1"
hmac = "0.12.1"
http = "1.4.0"
http-body-util = "0.1.3"
-httparse = "1.8.0"
humantime = "2.3.0"
hyper = { version = "1.9.0", features = ["http1", "server"] }
# hyper 0.14 is used by AWS SDK. Used to override the DNS resolver used by the SDK,
@@ -513,7 +507,6 @@ ssh-key = "0.6.7"
stacker = "0.1.24"
static_assertions = "1.1"
strsim = "0.11.1"
-subtle = "2.6.1"
supports-color = "3.0.2"
syn = { version = "2.0.119", features = ["extra-traits", "full", "parsing", "printing"] }
sysctl = "0.7.1"
diff --git a/console/img/github-mark-white.svg b/console/img/github-mark-white.svg
deleted file mode 100644
index bab151dddbb86..0000000000000
--- a/console/img/github-mark-white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/console/img/github-mark.svg b/console/img/github-mark.svg
deleted file mode 100644
index 0c8059f3ea646..0000000000000
--- a/console/img/github-mark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/console/img/google-mark.svg b/console/img/google-mark.svg
deleted file mode 100644
index 51237508a5af5..0000000000000
--- a/console/img/google-mark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/console/public/logo.png b/console/public/logo.png
deleted file mode 100644
index a5314daf42795..0000000000000
Binary files a/console/public/logo.png and /dev/null differ
diff --git a/console/src/api/fronteggToken.ts b/console/src/api/fronteggToken.ts
deleted file mode 100644
index 9f45a0fb78cc5..0000000000000
--- a/console/src/api/fronteggToken.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import * as Sentry from "@sentry/react";
-
-import { ContextHolder } from "~/external-library-wrappers/frontegg";
-
-/**
- * Returns the current Frontegg access token.
- * Usually we can get the access token from the `useAuth` hook,
- * but for our middlewares that aren't in the context of
- * React, we want to get it straight from the Frontegg
- * Redux store which is available via `ContextHolder`.
- */
-export function getAccessToken() {
- // Get the access token from Frontegg's context holder
- const accessToken = ContextHolder.for("default").getAccessToken();
-
- // The token will most likely always exist since this function
- // will be called when logged in. If not, we should alert Sentry.
- if (!accessToken) {
- Sentry.addBreadcrumb({
- level: "error",
- category: "auth",
- message: "Failed to refresh auth token",
- });
- }
- return accessToken;
-}
diff --git a/console/src/api/materialize/useCreditConsumption.ts b/console/src/api/materialize/useCreditConsumption.ts
deleted file mode 100644
index 7a7d309d029f4..0000000000000
--- a/console/src/api/materialize/useCreditConsumption.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { sql } from "kysely";
-import React from "react";
-
-import { queryBuilder, useSqlTyped } from "~/api/materialize";
-
-/**
- * Gets the number of compute credits per hour that are being consumed.
- * @param since filters replicas dropped before the given date, or undefined which
- * returns all replicas that are still running.
- */
-export function useCreditConsumption(since?: Date) {
- const query = React.useMemo(() => {
- let qb = queryBuilder
- .selectFrom("mz_cluster_replica_history as mcrh")
- .select([
- "mcrh.replica_id as replicaId",
- "mcrh.size",
- "mcrh.created_at as createdAt",
- "mcrh.dropped_at as dropppedAt",
- sql`mcrh.credits_per_hour`.as("creditsPerHour"),
- ]);
- if (since) {
- qb = qb.where((eb) =>
- eb.or([
- eb("mcrh.dropped_at", "is", null),
- eb("mcrh.dropped_at", ">=", since),
- ]),
- );
- } else {
- qb = qb.where("mcrh.dropped_at", "is", null);
- }
- return qb.compile();
- }, [since]);
-
- const response = useSqlTyped(query);
- let results = null;
- if (response.results) {
- results = response.results.reduce((acc, h) => acc + h.creditsPerHour, 0);
- }
- return { ...response, results };
-}
diff --git a/console/src/api/materialize/useShowCreate.ts b/console/src/api/materialize/useShowCreate.ts
deleted file mode 100644
index 74fc977c0f9d4..0000000000000
--- a/console/src/api/materialize/useShowCreate.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { sql } from "kysely";
-import React from "react";
-
-import {
- buildFullyQualifiedObjectName,
- queryBuilder,
- SchemaObject,
- useSqlTyped,
-} from "~/api/materialize";
-
-export type DDLNoun = "SINK" | "SOURCE";
-
-/**
- * Fetches the DDL statement for creating a schema object
- */
-function useShowCreate(noun: DDLNoun, schemaObject?: SchemaObject) {
- const query = React.useMemo(() => {
- if (!schemaObject) return null;
-
- return sql<{
- name: string;
- create_sql: string;
- }>`SHOW CREATE ${sql.raw(noun)} ${buildFullyQualifiedObjectName(
- schemaObject,
- )}`.compile(queryBuilder);
- }, [noun, schemaObject]);
-
- const response = useSqlTyped(query);
-
- let ddl: string | null = null;
- if (response.results) {
- ddl = response.results[0].create_sql;
- }
-
- return { ...response, results: ddl };
-}
-
-export default useShowCreate;
diff --git a/console/src/components/InternalOnlyNotice.tsx b/console/src/components/InternalOnlyNotice.tsx
deleted file mode 100644
index 3293545457ce0..0000000000000
--- a/console/src/components/InternalOnlyNotice.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { BoxProps, Text, Tooltip, useTheme } from "@chakra-ui/react";
-import React from "react";
-
-import { MaterializeTheme } from "~/theme";
-
-const InternalOnlyNotice = (props: BoxProps) => {
- const { colors } = useTheme();
- return (
-
-
- Internal Only
-
-
- );
-};
-
-export default InternalOnlyNotice;
diff --git a/console/src/components/PreviewNotice.tsx b/console/src/components/PreviewNotice.tsx
deleted file mode 100644
index 813eaad70cca4..0000000000000
--- a/console/src/components/PreviewNotice.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { BoxProps, Text, Tooltip, useTheme } from "@chakra-ui/react";
-import React from "react";
-
-import { MaterializeTheme } from "~/theme";
-
-const PreviewNotice = (props: BoxProps) => {
- const { colors } = useTheme();
- return (
-
-
- Preview
-
-
- );
-};
-
-export default PreviewNotice;
diff --git a/console/src/hooks/useCachedQueryData.ts b/console/src/hooks/useCachedQueryData.ts
deleted file mode 100644
index 5f4e03320c2d3..0000000000000
--- a/console/src/hooks/useCachedQueryData.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { QueryKey, useQueryClient } from "@tanstack/react-query";
-import deepEqual from "fast-deep-equal";
-import React from "react";
-
-export function useCachedQueryData(queryKey: QueryKey) {
- const queryClient = useQueryClient();
- const [data, setData] = React.useState(() =>
- queryClient.getQueryData(queryKey),
- );
-
- React.useEffect(() => {
- const unsubscribe = queryClient.getQueryCache().subscribe((event) => {
- if (deepEqual(event.query.queryKey, queryKey)) {
- // setTimeout avoids the "Cannot update a component while rendering a different component" error
- setTimeout(() => {
- setData(event.query.state.data);
- }, 0);
- }
- });
-
- return () => {
- unsubscribe();
- };
- }, [queryClient, queryKey]);
-
- return data;
-}
diff --git a/console/src/layouts/NavBar/SectionNav.tsx b/console/src/layouts/NavBar/SectionNav.tsx
deleted file mode 100644
index e224399d77b59..0000000000000
--- a/console/src/layouts/NavBar/SectionNav.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { StackProps, useTheme, VStack } from "@chakra-ui/react";
-import React from "react";
-
-import { MaterializeTheme } from "~/theme";
-
-export const SectionNav = (props: StackProps) => {
- const { colors } = useTheme();
-
- return (
-
- );
-};
diff --git a/console/src/platform/auth/PasswordField.tsx b/console/src/platform/auth/PasswordField.tsx
deleted file mode 100644
index 81d43ec04873b..0000000000000
--- a/console/src/platform/auth/PasswordField.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import {
- FormControl,
- FormHelperText,
- Input,
- InputProps,
- Text,
- useTheme,
- VStack,
-} from "@chakra-ui/react";
-import React from "react";
-import { FieldError, MultipleFieldErrors } from "react-hook-form";
-
-import { LabeledInput } from "~/components/formComponentsV2";
-import { MaterializeTheme } from "~/theme";
-
-import { passwordRules } from "./utils";
-
-export const PasswordField = (props: {
- errors: FieldError | undefined;
- label?: string;
- inputProps: InputProps;
-}) => {
- return (
-
-
-
-
-
-
-
-
- );
-};
-
-export const PasswordRules = (props: {
- errors: MultipleFieldErrors | undefined;
-}) => {
- const { colors } = useTheme();
-
- return (
-
-
- Password must:
-
-
-
- );
-};
diff --git a/console/src/platform/auth/utils.ts b/console/src/platform/auth/utils.ts
deleted file mode 100644
index 10f34be13bf68..0000000000000
--- a/console/src/platform/auth/utils.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { ValidateResult } from "react-hook-form";
-
-export function validatePassword(): Record<
- string,
- (value: string) => ValidateResult
-> {
- return {
- min: (value: string) => value.length >= 10,
- uppercase: (value: string) => Boolean(value.match(/[A-Z]/)),
- lowercase: (value: string) => Boolean(value.match(/[a-z]/)),
- number: (value: string) => Boolean(value.match(/\d/)),
- special: (value: string) => Boolean(value.match(/\W/)),
- repeating: (value: string) => !value.match(/(\w)\1\1/),
- };
-}
-
-export const passwordRules: Record<
- keyof ReturnType,
- string
-> = {
- min: "be at least 10 characters",
- uppercase: "contain at least one uppercase character",
- lowercase: "contain at least one lowercase character",
- number: "contain at least one number",
- special: "contain at least one special character",
- repeating: "not contain 3 or more repeating characters",
-};
diff --git a/console/src/platform/environment-not-ready/EnvironmentStatusPill.tsx b/console/src/platform/environment-not-ready/EnvironmentStatusPill.tsx
deleted file mode 100644
index ef638105344c5..0000000000000
--- a/console/src/platform/environment-not-ready/EnvironmentStatusPill.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { BoxProps, Flex, Text, useTheme } from "@chakra-ui/react";
-import React from "react";
-
-import { Environment } from "~/store/environments";
-import { MaterializeTheme } from "~/theme";
-
-import {
- getBackgroundColor,
- getBorderColor,
- getIcon,
- getText,
- getTextColor,
-} from "./utils";
-
-export type EnvironmentStatusPillProps = BoxProps & {
- environment: Environment;
- regionId: string;
-};
-
-const EnvironmentStatusPill = ({
- environment,
- regionId,
- ...boxProps
-}: EnvironmentStatusPillProps) => {
- const { colors } = useTheme();
-
- return (
-
- {getIcon(environment)}
- {getText(environment, regionId)}
-
- );
-};
-
-export default EnvironmentStatusPill;
diff --git a/console/src/platform/environment-overview/constants.ts b/console/src/platform/environment-overview/constants.ts
deleted file mode 100644
index c3c4c0d0a7a9c..0000000000000
--- a/console/src/platform/environment-overview/constants.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-export const TIME_PERIOD_OPTIONS = {
- "60": "Last hour",
- "180": "Last 3 hours",
- "360": "Last 6 hours",
- "1440": "Last 24 hours",
-};
diff --git a/console/src/platform/roles/RemoveUserMenuItem.tsx b/console/src/platform/roles/RemoveUserMenuItem.tsx
deleted file mode 100644
index 6b9ece2223447..0000000000000
--- a/console/src/platform/roles/RemoveUserMenuItem.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { MenuItem, useDisclosure, useTheme } from "@chakra-ui/react";
-import React from "react";
-
-import { MaterializeTheme } from "~/theme";
-
-import RemoveUserModal from "./RemoveUserModal";
-
-export interface RemoveUserMenuItemProps {
- roleName: string;
- memberName: string;
- onSuccess?: () => void;
-}
-
-const RemoveUserMenuItem = ({
- roleName,
- memberName,
- onSuccess,
-}: RemoveUserMenuItemProps) => {
- const { isOpen, onOpen, onClose } = useDisclosure();
- const { colors } = useTheme();
-
- return (
- <>
-
- {isOpen && (
-
- )}
- >
- );
-};
-
-export default RemoveUserMenuItem;
diff --git a/console/src/svg/CrosshairIcon.tsx b/console/src/svg/CrosshairIcon.tsx
deleted file mode 100644
index 9109335829a59..0000000000000
--- a/console/src/svg/CrosshairIcon.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { Icon, IconProps, useTheme } from "@chakra-ui/react";
-import React from "react";
-
-import { MaterializeTheme } from "~/theme";
-
-const CrosshairIcon = (props: IconProps) => {
- const { colors } = useTheme();
- return (
-
-
-
-
-
-
-
- );
-};
-
-export default CrosshairIcon;
diff --git a/console/src/svg/DiamondErrorIcon.tsx b/console/src/svg/DiamondErrorIcon.tsx
deleted file mode 100644
index 19ccc8a417a12..0000000000000
--- a/console/src/svg/DiamondErrorIcon.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import React from "react";
-
-const DiamondErrorIcon = () => (
-
-);
-
-export default DiamondErrorIcon;
diff --git a/console/src/svg/DoubleChevronRightIcon.tsx b/console/src/svg/DoubleChevronRightIcon.tsx
deleted file mode 100644
index a5d6758cdf1d1..0000000000000
--- a/console/src/svg/DoubleChevronRightIcon.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import { Icon, IconProps } from "@chakra-ui/react";
-import React from "react";
-
-const DoubleChevronRightIcon = (props: IconProps) => (
-
-
-
-
-);
-
-export default DoubleChevronRightIcon;
diff --git a/console/src/svg/PlusCircleIcon.tsx b/console/src/svg/PlusCircleIcon.tsx
deleted file mode 100644
index 16f92faddfa2d..0000000000000
--- a/console/src/svg/PlusCircleIcon.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import React from "react";
-
-const PlusCircleIcon = () => (
-
-);
-export default PlusCircleIcon;
diff --git a/console/src/svg/SearchIcon.tsx b/console/src/svg/SearchIcon.tsx
deleted file mode 100644
index 3ffde7918c7f8..0000000000000
--- a/console/src/svg/SearchIcon.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import React from "react";
-
-const SearchIcon = (props: { color: string }) => (
-
-);
-
-export default SearchIcon;
diff --git a/console/src/svg/ShieldIcon.tsx b/console/src/svg/ShieldIcon.tsx
deleted file mode 100644
index 88c05d30b9fb3..0000000000000
--- a/console/src/svg/ShieldIcon.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-import React from "react";
-
-const ShieldIcon = () => (
-
-);
-
-export default ShieldIcon;
diff --git a/console/src/theme/components/IconButton.ts b/console/src/theme/components/IconButton.ts
deleted file mode 100644
index f5d532d019656..0000000000000
--- a/console/src/theme/components/IconButton.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright Materialize, Inc. and contributors. All rights reserved.
-//
-// Use of this software is governed by the Business Source License
-// included in the LICENSE file.
-//
-// As of the Change Date specified in that file, in accordance with
-// the Business Source License, use of this software will be governed
-// by the Apache License, Version 2.0.
-
-// IconButton uses the Button component styles, don't try to override it here.
-// https://github.com/chakra-ui/chakra-ui/issues/3746
diff --git a/misc/dist/deb-scripts/postinst b/misc/dist/deb-scripts/postinst
deleted file mode 100755
index d88d236184ce4..0000000000000
--- a/misc/dist/deb-scripts/postinst
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-set -e
-
-# The weird username is intended to be unlikely
-# to conflict with real local users.
-adduser --system --group --force-badname --no-create-home --quiet _Materialize
-mkdir -p /var/lib/materialize/
-chown _Materialize:_Materialize /var/lib/materialize/
-
-if [ -x /bin/systemctl ]; then
- systemctl daemon-reload >/dev/null 2>&1 || true
-fi
diff --git a/misc/dist/materialized.service b/misc/dist/materialized.service
deleted file mode 100644
index 0fb6dcb9fb36a..0000000000000
--- a/misc/dist/materialized.service
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-[Unit]
-Description=Materialize streaming database
-After=network.target
-
-[Service]
-Type=exec
-User=_Materialize
-Group=_Materialize
-
-ExecStart=/usr/bin/materialized --data-directory /var/lib/materialize/mzdata
-
-[Install]
-WantedBy=multi-user.target
diff --git a/misc/python/materialize/build_config.py b/misc/python/materialize/build_config.py
deleted file mode 100644
index ea84b6703baa8..0000000000000
--- a/misc/python/materialize/build_config.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-import os
-from pathlib import Path
-from textwrap import dedent
-from typing import Any
-
-import toml
-
-
-class LocalState:
- """Local state persisted by a tool.
-
- Users should not expect this state to be durable, it can be blown away at
- at point.
-
- Stored at: ~/.cache/materialize/build_state.toml
- """
-
- def __init__(self, path: Path):
- self.path = path
- if path.is_file():
- with open(path) as f:
- self.data = toml.load(f)
- else:
- self.data = {}
-
- @staticmethod
- def default_path() -> Path:
- home = Path.home()
- path = home / ".cache" / "materialize" / "build_state.toml"
- return path
-
- @classmethod
- def read(cls, namespace: str) -> Any | None:
- cache = LocalState(LocalState.default_path())
- return cache.data.get(namespace, None)
-
- @classmethod
- def write(cls, namespace: str, val: Any):
- cache = LocalState(LocalState.default_path())
- cache.data[namespace] = val
-
- Path(os.path.dirname(cache.path)).mkdir(parents=True, exist_ok=True)
- with open(cache.path, "w+") as f:
- toml.dump(cache.data, f)
-
-
-class TeleportLocalState:
- def __init__(self, data: dict[str, Any] | None):
- self.data = data or {}
-
- @classmethod
- def read(cls):
- return TeleportLocalState(LocalState.read("teleport"))
-
- def write(self):
- LocalState.write("teleport", self.data)
-
- def get_pid(self, app_name: str) -> str | None:
- existing = self.data.get(app_name, {})
- return existing.get("pid")
-
- def set_pid(self, app_name: str, pid: str | None):
- existing = self.data.get(app_name, {})
- existing["pid"] = pid
- self.data[app_name] = existing
-
- def get_address(self, app_name: str) -> str | None:
- existing = self.data.get(app_name, {})
- return existing.get("address")
-
- def set_address(self, app_name: str, addr: str | None):
- existing = self.data.get(app_name, {})
- existing["address"] = addr
- self.data[app_name] = existing
-
- def __str__(self):
- return dedent(f"""
- TeleportLocalState:
- data: {self.data}
- """)
diff --git a/misc/python/materialize/buildkite_insights/segfaults/find.py b/misc/python/materialize/buildkite_insights/segfaults/find.py
deleted file mode 100755
index f620474b1993f..0000000000000
--- a/misc/python/materialize/buildkite_insights/segfaults/find.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-import time
-
-from materialize.buildkite_insights.buildkite_api import builds_api, generic_api
-
-
-def main() -> None:
- # Used to find recent instances of https://github.com/MaterializeInc/database-issues/issues/7338
- # 2 weeks ~ 2000 builds
- data = builds_api.get_builds_of_all_pipelines(max_fetches=20, branch=None)
-
- for build in data:
- request_path = f"organizations/materialize/pipelines/{build['pipeline']['slug']}/builds/{build['number']}/artifacts"
- params = {"per_page": "100"}
- result = generic_api.get_multiple(request_path, params, max_fetches=None)
- for artifact in result:
- # Some core files are corrupted, probably because they get dumped during shutdown, ignore them
- if (
- "core" in artifact["filename"]
- and build["pipeline"]["slug"] != "coverage"
- and artifact["file_size"] > 100000
- ):
- print(
- f"{build['started_at']}: {artifact['filename']} in https://buildkite.com/materialize/{build['pipeline']['slug']}/builds/{build['number']}#{artifact['job_id']}"
- )
- time.sleep(2)
-
-
-if __name__ == "__main__":
- main()
diff --git a/misc/python/materialize/cloudtest/k8s/toxiproxy.py b/misc/python/materialize/cloudtest/k8s/toxiproxy.py
index 6dcf93149a63d..a73ee2d17c6da 100644
--- a/misc/python/materialize/cloudtest/k8s/toxiproxy.py
+++ b/misc/python/materialize/cloudtest/k8s/toxiproxy.py
@@ -21,11 +21,8 @@
V1ServiceSpec,
)
-from materialize.cloudtest import DEFAULT_K8S_NAMESPACE
from materialize.cloudtest.k8s.api.k8s_deployment import K8sDeployment
-from materialize.cloudtest.k8s.api.k8s_resource import K8sResource
from materialize.cloudtest.k8s.api.k8s_service import K8sService
-from materialize.mzcompose.services.redpanda import REDPANDA_VERSION
TOXIPROXY_IMAGE = "jauderho/toxiproxy:v2.8.0"
@@ -163,133 +160,3 @@ def delete(self) -> None:
self.api().delete_namespaced_service(
name=self._name, namespace=self.namespace()
)
-
-
-def toxiproxy_resources(
- namespace: str = DEFAULT_K8S_NAMESPACE,
- name: str = "toxiproxy",
- apply_node_selectors: bool = False,
-) -> list[K8sResource]:
- """Create Toxiproxy deployment and service resources.
-
- Args:
- namespace: Kubernetes namespace
- name: Name for this toxiproxy instance (use different names for multi-AZ)
- apply_node_selectors: Whether to apply node selectors
- """
- return [
- ToxiproxyDeployment(namespace, name, apply_node_selectors),
- ToxiproxyService(namespace, name),
- ]
-
-
-class PrivateLinkTestRedpandaDeployment(K8sDeployment):
- """Redpanda deployment that advertises an AZ-specific hostname for PrivateLink testing.
-
- This allows testing pattern-based broker routing where the advertised broker
- address contains an AZ identifier that can be matched by routing rules.
-
- Args:
- namespace: Kubernetes namespace
- name: Name for this Redpanda instance
- advertise_addr: The address Redpanda advertises to clients (e.g., "broker.use1-az1.internal:9092")
- apply_node_selectors: Whether to apply node selectors
- """
-
- def __init__(
- self,
- namespace: str,
- name: str = "redpanda-privatelink",
- advertise_addr: str = "broker.use1-az1.internal:9092",
- apply_node_selectors: bool = False,
- ) -> None:
- super().__init__(namespace)
- self._name = name
- app_label = name
-
- container = V1Container(
- name="redpanda",
- image=f"redpandadata/redpanda:{REDPANDA_VERSION}",
- command=[
- "/usr/bin/rpk",
- "redpanda",
- "start",
- "--overprovisioned",
- "--smp",
- "1",
- "--memory",
- "1G",
- "--reserve-memory",
- "0M",
- "--node-id",
- "0",
- "--check=false",
- "--set",
- "redpanda.enable_transactions=true",
- "--set",
- "redpanda.enable_idempotence=true",
- "--set",
- "redpanda.auto_create_topics_enabled=true",
- "--set",
- "redpanda.topic_memory_per_partition=4096",
- "--advertise-kafka-addr",
- advertise_addr,
- ],
- )
-
- node_selector = None
- if apply_node_selectors:
- node_selector = {"supporting-services": "true"}
-
- template = V1PodTemplateSpec(
- metadata=V1ObjectMeta(namespace=namespace, labels={"app": app_label}),
- spec=V1PodSpec(containers=[container], node_selector=node_selector),
- )
-
- selector = V1LabelSelector(match_labels={"app": app_label})
- spec = V1DeploymentSpec(replicas=1, template=template, selector=selector)
-
- self.deployment = V1Deployment(
- api_version="apps/v1",
- kind="Deployment",
- metadata=V1ObjectMeta(name=name, namespace=namespace),
- spec=spec,
- )
-
- def delete(self) -> None:
- self.apps_api().delete_namespaced_deployment(
- name=self._name, namespace=self.namespace()
- )
-
-
-class PrivateLinkTestRedpandaService(K8sService):
- """Service for the PrivateLink test Redpanda instance.
-
- Args:
- namespace: Kubernetes namespace
- name: Name for this service (should match deployment name)
- """
-
- def __init__(self, namespace: str, name: str = "redpanda-privatelink") -> None:
- super().__init__(namespace)
- self._name = name
- app_label = name
-
- ports = [
- V1ServicePort(name="kafka", port=9092),
- V1ServicePort(name="schema-registry", port=8081),
- ]
-
- self.service = V1Service(
- metadata=V1ObjectMeta(
- name=name, namespace=namespace, labels={"app": app_label}
- ),
- spec=V1ServiceSpec(
- type="NodePort", ports=ports, selector={"app": app_label}
- ),
- )
-
- def delete(self) -> None:
- self.api().delete_namespaced_service(
- name=self._name, namespace=self.namespace()
- )
diff --git a/misc/python/materialize/deb.py b/misc/python/materialize/deb.py
deleted file mode 100644
index 88f29035db122..0000000000000
--- a/misc/python/materialize/deb.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-"""Debian packaging utilities."""
diff --git a/misc/python/materialize/mzcompose/__init__.py b/misc/python/materialize/mzcompose/__init__.py
index 18afa831d4b44..7b40c8bc9b23d 100644
--- a/misc/python/materialize/mzcompose/__init__.py
+++ b/misc/python/materialize/mzcompose/__init__.py
@@ -90,7 +90,6 @@ def get_minimal_system_parameters(
"enable_lgalloc": "false",
"enable_load_generator_counter": "true",
"enable_logical_compaction_window": "true",
- "enable_multi_worker_storage_persist_sink": "true",
"enable_multi_replica_sources": "true",
"enable_rbac_checks": "true",
"enable_reduce_mfp_fusion": "true",
diff --git a/misc/python/materialize/mzcompose/services/squid.py b/misc/python/materialize/mzcompose/services/squid.py
deleted file mode 100644
index 8b3bddc54eb45..0000000000000
--- a/misc/python/materialize/mzcompose/services/squid.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-
-from materialize.mzcompose.service import (
- Service,
-)
-
-
-class Squid(Service):
- """
- An HTTP forward proxy, used in some workflows to test whether Materialize can correctly route
- traffic via the proxy.
- """
-
- def __init__(
- self,
- name: str = "squid",
- image: str = "sameersbn/squid:3.5.27-2",
- port: int = 3128,
- volumes: list[str] = ["./squid.conf:/etc/squid/squid.conf"],
- ) -> None:
- super().__init__(
- name=name,
- config={"image": image, "ports": [port], "volumes": volumes},
- )
diff --git a/misc/python/materialize/output_consistency/debug/print_query_result.py b/misc/python/materialize/output_consistency/debug/print_query_result.py
deleted file mode 100644
index 075e2c8a2752c..0000000000000
--- a/misc/python/materialize/output_consistency/debug/print_query_result.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-from materialize.output_consistency.query.query_result import (
- QueryResult,
-)
-
-
-def _determine_column_lengths(
- outcome: QueryResult, min_length: int, max_length: int
-) -> list[int]:
- column_lengths = [min_length for _ in range(0, outcome.query_column_count)]
-
- for row_index in range(0, outcome.row_count()):
- for col_index in range(0, outcome.query_column_count):
- value = outcome.result_rows[row_index][col_index]
- value_length = len(str(value))
- column_lengths[col_index] = min(
- max(column_lengths[col_index], value_length), max_length
- )
-
- return column_lengths
diff --git a/misc/python/materialize/output_consistency/ignore_filter/param_matchers.py b/misc/python/materialize/output_consistency/ignore_filter/param_matchers.py
deleted file mode 100644
index 3014643a7c08e..0000000000000
--- a/misc/python/materialize/output_consistency/ignore_filter/param_matchers.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-from collections.abc import Callable
-
-from materialize.output_consistency.operation.operation_param import OperationParam
-
-
-def index_of_param(
- params: list[OperationParam], match_fn: Callable[[OperationParam], bool]
-) -> int | None:
- for i, param in enumerate(params):
- if match_fn(param):
- return i
-
- return None
diff --git a/misc/python/materialize/output_consistency/input_data/params/uuid_operation_param.py b/misc/python/materialize/output_consistency/input_data/params/uuid_operation_param.py
deleted file mode 100644
index 9b7d04de34fa6..0000000000000
--- a/misc/python/materialize/output_consistency/input_data/params/uuid_operation_param.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-
-from materialize.output_consistency.data_type.data_type import DataType
-from materialize.output_consistency.data_type.data_type_category import DataTypeCategory
-from materialize.output_consistency.expression.expression import Expression
-from materialize.output_consistency.expression.expression_characteristics import (
- ExpressionCharacteristics,
-)
-from materialize.output_consistency.input_data.types.uuid_type_provider import (
- UUID_TYPE_IDENTIFIER,
-)
-from materialize.output_consistency.operation.operation_param import OperationParam
-
-
-class UuidOperationParam(OperationParam):
- def __init__(
- self,
- optional: bool = False,
- incompatibilities: set[ExpressionCharacteristics] | None = None,
- ):
- super().__init__(
- DataTypeCategory.UUID,
- optional,
- incompatibilities,
- incompatibility_combinations=None,
- )
-
- def supports_type(
- self, data_type: DataType, previous_args: list[Expression]
- ) -> bool:
- return data_type.internal_identifier == UUID_TYPE_IDENTIFIER
diff --git a/misc/python/materialize/query_fitness/README.md b/misc/python/materialize/query_fitness/README.md
deleted file mode 100644
index 865943b8c65e5..0000000000000
--- a/misc/python/materialize/query_fitness/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-This directory contains scripts that can be used to pick a smaller subset of interesting queries to test
-out of a larger list of queries, such as those produced by a fuzzing tool.
diff --git a/misc/python/materialize/query_fitness/all_parts_essential.py b/misc/python/materialize/query_fitness/all_parts_essential.py
deleted file mode 100644
index 0c1835f3ef5ea..0000000000000
--- a/misc/python/materialize/query_fitness/all_parts_essential.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-
-"""
-Test that all parts of the query are important. This is done by
-commenting out parts of the query -- if any part of the query
-can be commented out without this affecting the result of the query
-this means that the query contains constructs and predicates that
-do not contribute to the final result in any way.
-
-On the other hand, if all parts of the query are deemed essential,
-the query is such that if any part of it is lost during optimization
-or execution, the entire query will start producing a different result.
-Such queries are suitable for inclusion in regression tests
-"""
-
-from pg8000.dbapi import DatabaseError
-
-from materialize.query_fitness.fitness_function import FitnessFunction
-
-
-class AllPartsEssential(FitnessFunction):
- def _result_checksum(self, query: str) -> str | None:
- """Execute the query and return a 'checksum' of the result.
- In this implementation, the checksum is simply the serialization of the entire result set
- """
- try:
- self._cur.execute("COMMIT")
- self._cur.execute(query)
- return str(self._cur.fetchall())
- except DatabaseError:
- return None
-
- def fitness(self, query: str) -> float:
- """Test if all parts of a query are essential to producing the same result. This is done
- by commenting out parts of the query and checking if the result is the same. If it is, then
- the query contains a non-essential part and is thus rejected (fitness = 0).
- """
- query = query.strip(" ;\n")
- if not query:
- return 0
-
- orig_checksum = self._result_checksum(query)
- if not orig_checksum:
- return 0
-
- tokens = query.split()
- l = len(tokens)
-
- for start_token in reversed(range(0, l)):
- for end_token in reversed(range(start_token, l)):
- new_tokens = [*tokens]
- new_tokens.insert(end_token + 1, " */ ")
- new_tokens.insert(start_token, " /* ")
-
- new_query = " ".join(new_tokens)
- new_checksum = self._result_checksum(new_query)
-
- if new_checksum == orig_checksum:
- return 0
-
- return 1
diff --git a/misc/python/materialize/query_fitness/fitness_function.py b/misc/python/materialize/query_fitness/fitness_function.py
deleted file mode 100644
index c9266a2d19bf1..0000000000000
--- a/misc/python/materialize/query_fitness/fitness_function.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-from pg8000 import Connection
-
-
-class FitnessFunction:
- def __init__(self, conn: Connection):
- self._conn = conn
- self._cur = conn.cursor()
-
- def fitness(self, query: str) -> float:
- raise NotImplementedError
diff --git a/misc/python/materialize/query_fitness/pick.py b/misc/python/materialize/query_fitness/pick.py
deleted file mode 100644
index 0a3628eca12d3..0000000000000
--- a/misc/python/materialize/query_fitness/pick.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-
-import sys
-
-import pg8000
-import sqlparse
-
-from materialize.query_fitness.all_parts_essential import AllPartsEssential
-
-threshold = 0.5
-
-
-def main() -> None:
- conn = pg8000.connect(user="pstoev", database="pstoev", password="pstoev")
- fitness_func = AllPartsEssential(conn=conn)
-
- for query in sys.stdin:
- fitness = fitness_func.fitness(query)
-
- if fitness > 0.5:
- dump_slt(conn, query)
-
-
-def dump_slt(conn: pg8000.Connection, query: str) -> None:
- query = sqlparse.format(query.rstrip(), reindent=True, keyword_case="upper")
- cursor = conn.cursor()
- cursor.execute("ROLLBACK")
- cursor.execute(query)
- row = cursor.fetchone()
- assert row is not None
- cols = len(row)
- colspec = "I" * cols
- print(f"""
-
-query {colspec} rowsort
-{query}
-----
-9999999999 values hashing to YY
-
-query T multiline
-EXPLAIN {query}
-----
-EOF""")
-
-
-if __name__ == "__main__":
- main()
diff --git a/misc/python/materialize/setup.py b/misc/python/materialize/setup.py
deleted file mode 100644
index 8e42f157a2945..0000000000000
--- a/misc/python/materialize/setup.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License in the LICENSE file at the
-# root of this repository, or online at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from setuptools import setup
-
-if __name__ == "__main__":
- setup(
- name="materialize",
- version="0.2.0",
- description="Materialize test base.",
- author="Materialize, Inc.",
- author_email="support@materialize.com",
- packages=[
- "materialize",
- "materialize.cloudtest",
- "materialize.cloudtest.app",
- "materialize.cloudtest.k8s",
- "materialize.cloudtest.k8s.api",
- "materialize.cloudtest.util",
- "materialize.mzcompose",
- ],
- package_dir={"materialize": "."},
- install_requires=["pg8000", "semver", "sqlparse", "kubernetes"],
- )
diff --git a/misc/python/materialize/teleport.py b/misc/python/materialize/teleport.py
deleted file mode 100644
index dd751adf29c69..0000000000000
--- a/misc/python/materialize/teleport.py
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-import os
-import subprocess
-import threading
-import time
-from textwrap import dedent
-
-import psutil
-
-from materialize import build_config, ui
-
-
-class TeleportProxy:
- @classmethod
- def spawn(cls, app_name: str, port: str):
- """Spawn a Teleport proxy for the provided app_name."""
-
- teleport_state = build_config.TeleportLocalState.read()
-
- # If there is already a Teleport proxy running, no need to restart one.
- running_pid = TeleportProxy.check(app_name)
- if running_pid:
- ui.say(f"Teleport proxy already running, PID: {running_pid}")
- return
- else:
- # If the existing PID doesn't exist, clear it from state.
- teleport_state.set_pid(app_name, None)
- teleport_state.set_address(app_name, None)
- teleport_state.write()
-
- # Otherwise spawn a Teleport proxy.
- cmd_args = ["tsh", "proxy", "app", f"{app_name}", "--port", port]
- child = subprocess.Popen(
- cmd_args,
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
- preexec_fn=os.setpgrp,
- )
- ui.say(f"starting Teleport proxy for '{app_name}'...")
-
- def wait(child, teleport_state, address):
- wait_start = time.time()
-
- while time.time() - wait_start < 2:
- child_terminated = child.poll()
- if child_terminated:
- other_tshs = [
- p.pid
- for p in psutil.process_iter(["pid", "name"])
- if p.name() == "tsh"
- ]
- ui.warn(dedent(f"""
- Teleport proxy failed to start, 'tsh' process already running!
- existing 'tsh' processes: {other_tshs}
- exit code: {child_terminated}
- """))
- break
-
- # Timed out! Check if the process is running.
- child_pid_status = psutil.pid_exists(child.pid)
- if child_pid_status:
- # Record the PID, if the process started successfully.
- teleport_state.set_pid(app_name, child.pid)
- teleport_state.set_address(app_name, address)
- teleport_state.write()
-
- # Spawn a thread that will wait for the Teleport proxy to start, and
- # record it's PID, or warn that it failed to start.
- address = f"http://localhost:{port}"
- thread = threading.Thread(target=wait, args=[child, teleport_state, address])
- thread.start()
-
- @classmethod
- def check(cls, app_name: str) -> str | None:
- """Check if a Teleport proxy is already running for the specified app_name."""
-
- teleport_state = build_config.TeleportLocalState.read()
- existing_pid = teleport_state.get_pid(app_name)
-
- if existing_pid and psutil.pid_exists(int(existing_pid)):
- return teleport_state.get_pid(app_name)
- else:
- return None
diff --git a/misc/python/materialize/test_analytics/config/sandbox_db_config.py b/misc/python/materialize/test_analytics/config/sandbox_db_config.py
deleted file mode 100644
index caae679255ee1..0000000000000
--- a/misc/python/materialize/test_analytics/config/sandbox_db_config.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
diff --git a/misc/python/materialize/test_analytics/setup/test_analytics_setup.py b/misc/python/materialize/test_analytics/setup/test_analytics_setup.py
deleted file mode 100644
index c256182181e10..0000000000000
--- a/misc/python/materialize/test_analytics/setup/test_analytics_setup.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright Materialize, Inc. and contributors. All rights reserved.
-#
-# Use of this software is governed by the Business Source License
-# included in the LICENSE file at the root of this repository.
-#
-# As of the Change Date specified in that file, in accordance with
-# the Business Source License, use of this software will be governed
-# by the Apache License, Version 2.0.
-
-import os
-
-from psycopg import Cursor
-
-from materialize.test_analytics.util.mz_sql_util import as_sanitized_literal
-
-
-def setup_structures(cursor: Cursor, directory: str) -> None:
- if exist_structures(cursor):
- return
-
- setup_files = os.listdir(directory)
- setup_files.sort()
-
- for file_name in setup_files:
- if not file_name.endswith(".sql"):
- continue
-
- file_handle = open(f"{directory}/{file_name}")
- content = file_handle.read()
-
- sql_commands = content.split(";")
-
- for command in sql_commands:
- print(f"> {command}")
- cursor.execute(command.encode())
-
-
-def exist_structures(cursor: Cursor) -> bool:
- table_name_to_test = "build"
- cursor.execute(
- f"SELECT exists(SELECT 1 FROM mz_tables WHERE name = {as_sanitized_literal(table_name_to_test)});".encode()
- )
- return cursor.fetchall()[0][0]
diff --git a/misc/tb/README.md b/misc/tb/README.md
deleted file mode 100644
index c9a9750dd8ef6..0000000000000
--- a/misc/tb/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# **t**ail **b**inlogs
-
-⚠️ **tb is no longer maintained.** ⚠️
-
-An archive of the source code is preserved at
-https://github.com/MaterializeInc/tb and in the Git history of this repository.
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index e7ab4e8c22546..0000000000000
--- a/package-lock.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "name": "materialize",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {}
-}
diff --git a/src/adapter-types/src/compaction.rs b/src/adapter-types/src/compaction.rs
index f734bc0f158e5..721160a5b25a4 100644
--- a/src/adapter-types/src/compaction.rs
+++ b/src/adapter-types/src/compaction.rs
@@ -46,15 +46,6 @@ pub enum CompactionWindow {
}
impl CompactionWindow {
- pub fn lag_from(&self, from: Timestamp) -> Timestamp {
- let lag = match self {
- CompactionWindow::Default => DEFAULT_LOGICAL_COMPACTION_WINDOW_TS,
- CompactionWindow::DisableCompaction => return Timestamp::minimum(),
- CompactionWindow::Duration(d) => *d,
- };
- from.saturating_sub(lag)
- }
-
/// Returns self as a Timestamp that can be used for comparisons.
pub fn comparable_timestamp(&self) -> Timestamp {
match self {
diff --git a/src/adapter/src/catalog.rs b/src/adapter/src/catalog.rs
index c66df7dd95262..34bbae8a04ce4 100644
--- a/src/adapter/src/catalog.rs
+++ b/src/adapter/src/catalog.rs
@@ -420,43 +420,6 @@ impl Catalog {
f(catalog).await
}
- /// Like [`Catalog::with_debug`], but the catalog created believes that bootstrap is still
- /// in progress.
- pub async fn with_debug_in_bootstrap(f: F) -> T
- where
- F: FnOnce(Catalog) -> Fut,
- Fut: Future