Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 0 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,3 @@ PORT=3000
SUPERUSER_API_KEY=dev-superuser-key
REPLANE_ADMIN_API_BASE_URL=http://localhost:3000
REPLANE_EDGE_API_BASE_URL=http://localhost3000

# Enables Settings > Instance > Backup & restore. Use a long random operator-only token.
# INSTANCE_TRANSFER_TOKEN=
7 changes: 0 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,13 +317,6 @@ For detailed security guidelines and to report vulnerabilities, see [SECURITY.md

Have questions or want to discuss Replane? Join the conversation in [GitHub Discussions](https://github.com/orgs/replane-dev/discussions).

### Instance backup and restore

To move all projects, configs, users, memberships, and history to another instance,
set `INSTANCE_TRANSFER_TOKEN` and use **Settings → Instance → Backup & restore**.
See the [instance migration guide](docs/instance-transfer.md) for the export/import
workflow, credential handling, and required restart steps.

## License

MIT
45 changes: 0 additions & 45 deletions docs/instance-transfer.md

This file was deleted.

2 changes: 0 additions & 2 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ const nextConfig: NextConfig = {
productionBrowserSourceMaps: true,
experimental: {
serverSourceMaps: true,
// Instance JSON restores accept up to 100 MiB.
proxyClientMaxBodySize: 100 * 1024 * 1024,
},
redirects: async () => [
{
Expand Down
73 changes: 0 additions & 73 deletions src/app/api/instance-transfer/route.spec.ts

This file was deleted.

90 changes: 0 additions & 90 deletions src/app/api/instance-transfer/route.ts

This file was deleted.

1 change: 0 additions & 1 deletion src/components/settings-context.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import * as React from 'react';
import {SettingsDialog} from './settings-dialog';

export type SettingsSection =
| 'instance-transfer'
| 'account-general'
| 'account-appearance'
| 'account-email-preferences'
Expand Down
27 changes: 2 additions & 25 deletions src/components/settings-dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import {Suspense} from 'react';
import {AccountAppearanceSettings} from './settings/account-appearance-settings';
import {AccountEmailPreferencesSettings} from './settings/account-email-preferences-settings';
import {AccountGeneralSettings} from './settings/account-general-settings';
import {InstanceTransferSettings} from './settings/instance-transfer-settings';
import {ProjectEnvironmentsSettings} from './settings/project-environments-settings';
import {ProjectGeneralSettings} from './settings/project-general-settings';
import {ProjectMembersSettings} from './settings/project-members-settings';
Expand All @@ -29,7 +28,6 @@ import {WorkspaceGeneralSettings} from './settings/workspace-general-settings';
import {WorkspaceMembersSettings} from './settings/workspace-members-settings';

type SettingsSection =
| 'instance-transfer'
| 'account-general'
| 'account-appearance'
| 'account-email-preferences'
Expand All @@ -56,7 +54,7 @@ export function SettingsDialog({
initialSection = 'project-general',
}: SettingsDialogProps) {
const [activeSection, setActiveSection] = React.useState<SettingsSection>(initialSection);
const {isEmailServerConfigured, isInstanceTransferEnabled} = useAppContext();
const {isEmailServerConfigured} = useAppContext();

// Update active section when initialSection changes and dialog opens
React.useEffect(() => {
Expand All @@ -67,20 +65,6 @@ export function SettingsDialog({

const navSections = React.useMemo(
() => [
...(isInstanceTransferEnabled
? [
{
label: 'Instance',
items: [
{
name: 'Backup & restore',
icon: SettingsIcon,
section: 'instance-transfer' as SettingsSection,
},
],
},
]
: []),
{
label: 'Account',
items: [
Expand Down Expand Up @@ -114,15 +98,11 @@ export function SettingsDialog({
],
},
],
[isEmailServerConfigured, isInstanceTransferEnabled],
[isEmailServerConfigured],
);

const getSectionTitle = (section: SettingsSection): {title: string; breadcrumb: string[]} => {
const map: Record<SettingsSection, {title: string; breadcrumb: string[]}> = {
'instance-transfer': {
title: 'Backup & restore',
breadcrumb: ['Instance', 'Backup & restore'],
},
'account-general': {title: 'Account', breadcrumb: ['Account', 'General']},
'account-appearance': {title: 'Appearance', breadcrumb: ['Account', 'Appearance']},
'account-email-preferences': {
Expand Down Expand Up @@ -175,9 +155,6 @@ export function SettingsDialog({
<main className="flex h-[600px] flex-1 flex-col overflow-hidden py-4">
<div className="flex flex-1 flex-col overflow-y-auto p-6">
<Suspense fallback={<SettingsLoadingFallback />}>
{activeSection === 'instance-transfer' && isInstanceTransferEnabled && (
<InstanceTransferSettings />
)}
{activeSection === 'account-general' && <AccountGeneralSettings />}
{activeSection === 'account-appearance' && <AccountAppearanceSettings />}
{activeSection === 'account-email-preferences' && isEmailServerConfigured && (
Expand Down
72 changes: 0 additions & 72 deletions src/components/settings/instance-transfer-settings.spec.tsx

This file was deleted.

Loading
Loading