Skip to content
This repository was archived by the owner on Sep 21, 2026. It is now read-only.

Commit 84eb30d

Browse files
Merge pull request #3138 from appwrite/fix-remove-dev-key-creation
fix(dev-keys): remove dev key creation and add deprecation notice
2 parents c424116 + b299123 commit 84eb30d

6 files changed

Lines changed: 43 additions & 110 deletions

File tree

‎src/routes/(console)/project-[region]-[project]/overview/(components)/table.svelte‎

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
import type { Models } from '@appwrite.io/console';
88
import { diffDays } from '$lib/helpers/date';
99
import DualTimeView from '$lib/components/dualTimeView.svelte';
10-
import { devKeyColumns, keyColumns, showDevKeysCreateModal } from '../store';
11-
import { Badge, Layout, Table } from '@appwrite.io/pink-svelte';
10+
import { devKeyColumns, keyColumns } from '../store';
11+
import { Button } from '$lib/elements/forms';
12+
import { Badge, Card, Empty as EmptyState, Layout, Table } from '@appwrite.io/pink-svelte';
1213
import DeleteBatch from './deleteBatch.svelte';
1314
import { capitalize } from '$lib/helpers/string';
1415
@@ -127,22 +128,31 @@
127128
{offset}
128129
total={keys.total} />
129130
{/if}
130-
{:else}
131+
{:else if isApiKey}
131132
<Empty
132133
single
133134
allowCreate={$canWriteKeys}
134135
href="https://appwrite.io/docs/advanced/platform/{slug}"
135136
target="{label} key"
136137
description={getDescription()}
137138
on:click={async () => {
138-
if (isApiKey) {
139-
await goto(
140-
`${base}/project-${page.params.region}-${page.params.project}/overview/${slug}/create`
141-
);
142-
} else {
143-
$showDevKeysCreateModal = true;
144-
}
139+
await goto(
140+
`${base}/project-${page.params.region}-${page.params.project}/overview/${slug}/create`
141+
);
145142
}} />
143+
{:else}
144+
<Card.Base padding="none">
145+
<EmptyState title="No dev keys" description={getDescription()}>
146+
<svelte:fragment slot="actions">
147+
<Button
148+
external
149+
href="https://appwrite.io/docs/advanced/platform/{slug}"
150+
text
151+
size="s"
152+
ariaLabel="dev keys documentation">Documentation</Button>
153+
</svelte:fragment>
154+
</EmptyState>
155+
</Card.Base>
146156
{/if}
147157

148158
<DeleteBatch {keyType} bind:keyIds={selectedKeys} bind:showDelete={showDeleteModal} />

‎src/routes/(console)/project-[region]-[project]/overview/+layout.svelte‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,16 +93,6 @@
9393
keys: ['c', 'k'],
9494
group: 'integrations',
9595
disabled: !$canWriteProjects
96-
},
97-
{
98-
label: 'Create Dev Key',
99-
icon: IconPlus,
100-
callback() {
101-
goto(`${path}/dev-keys/create`);
102-
},
103-
keys: ['c', 'd', 'k'],
104-
group: 'integrations',
105-
disabled: !$canWriteProjects
10696
}
10797
]);
10898
$updateCommandGroupRanks({
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { getContext, type Component } from 'svelte';
22
import type { Writable } from 'svelte/store';
33

4-
export type OverviewActionContext = Writable<Component>;
4+
export type OverviewActionContext = Writable<Component | null>;
55

6-
export function setOverviewAction(component: Component) {
6+
export function setOverviewAction(component: Component | null) {
77
getContext<OverviewActionContext>('overview-action').set(component);
88
}
Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
<script lang="ts">
2-
import Action from './action.svelte';
32
import { setOverviewAction } from '../context';
43
import Table from '../(components)/table.svelte';
4+
import { Alert, Layout, Typography } from '@appwrite.io/pink-svelte';
55
6-
export let data;
6+
let { data } = $props();
77
8-
setOverviewAction(Action);
8+
setOverviewAction(null);
99
</script>
1010

11-
<Table keys={data.devKeys} keyType="dev" />
11+
<Layout.Stack gap="l">
12+
<Alert.Inline status="warning" title="Dev keys are deprecated">
13+
<Typography.Text>
14+
As of July 22, 2026, creating new dev keys is paused. Existing dev keys keep working
15+
until September 1, 2026. Learn more in the
16+
<a
17+
href="https://appwrite.io/changelog/entry/2026-07-22"
18+
target="_blank"
19+
rel="noopener noreferrer"
20+
style="text-decoration: underline;">
21+
changelog
22+
</a>.
23+
</Typography.Text>
24+
</Alert.Inline>
25+
26+
<Table keys={data.devKeys} keyType="dev" />
27+
</Layout.Stack>

‎src/routes/(console)/project-[region]-[project]/overview/dev-keys/action.svelte‎

Lines changed: 0 additions & 81 deletions
This file was deleted.

‎src/routes/(console)/project-[region]-[project]/overview/store.ts‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { sdk } from '$lib/stores/sdk';
22
import { cachedStore } from '$lib/helpers/cache';
3-
import { get, readable, writable, type Writable } from 'svelte/store';
3+
import { get, readable } from 'svelte/store';
44
import type { Models, ProjectUsageRange } from '@appwrite.io/console';
55
import { page } from '$app/state';
66
import type { Column } from '$lib/helpers/types';
@@ -25,8 +25,6 @@ export const usage = cachedStore<
2525
};
2626
});
2727

28-
export const showDevKeysCreateModal: Writable<boolean> = writable(false);
29-
3028
export const devKeyColumns = readable<Column[]>([
3129
{ id: 'name', title: 'Name', type: 'string', width: { min: 120 } },
3230
{ id: 'last_accessed', title: 'Last accessed', type: 'datetime', width: { min: 120 } },

0 commit comments

Comments
 (0)