kisenon

Projetos

A unidade de isolamento na Kisenon — nomenclatura, ciclo de vida e semântica de cascata.

Um projeto é o contêiner de nível superior na Kisenon. Todo branch, endpoint, role e banco de dados vive sob exatamente um projeto.

O que um projeto possui

  • Um branch main, auto-criado no momento da criação do projeto.
  • Storage copy-on-write com escopo neste projeto. Nenhum outro projeto pode ler suas páginas.
  • A versão major do Postgres fixada na criação.
  • Uma região. Hoje todo projeto vive na única região de home-cluster (EUA, bare metal); multi-região está no roadmap.

Isolamento de projeto

Storage, WAL e caches são particionados por projeto; não há caminho de escrita compartilhado entre projetos. Endpoints de projetos diferentes não conseguem alcançar o storage uns dos outros mesmo que seus pods de compute estejam agendados no mesmo node — a network policy por projeto e o token de autenticação de storage restringem cada requisição de página.

Este é o limite no qual você pode confiar para conformidade e isolamento de vizinhos barulhentos. Limites de branch dentro de um projeto são mais suaves: branches compartilham storage e herdam as páginas do pai até que divirjam.

Nomenclatura

Nomes de projeto são rótulos visíveis ao usuário. Eles:

  • Devem ter 1–63 caracteres.
  • Correspondem a ^[a-zA-Z][a-zA-Z0-9_-]*$. Letras, dígitos, _, -; devem começar com uma letra.
  • Não precisam ser globalmente únicos; ser único dentro da sua organização é suficiente.

O id interno do projeto (prj_<24 hex>) é o que todo outro recurso referencia. O rótulo é para humanos.

Versão do Postgres

Você escolhe a versão major no momento da criação. O padrão é 17. Uma vez definida, ela não pode ser alterada no lugar — upgrade de versão major é uma migração fora de banda que documentaremos quando chegar. Para o alpha, trate a versão como imutável.

Criar

No console web, clique em New project, digite um nome, escolha a versão major do Postgres e escolha uma região (o dropdown tem como padrão Auto (nearest)). Clique em Create. Pela CLI:

keon projects create --name my-app --pg-version 17

O control plane provisiona storage, cria o branch main, e retorna o id do projeto. De ponta a ponta isso tipicamente leva menos de dois segundos.

Excluir

Excluir um projeto faz cascata por cada recurso que ele possui:

  1. Todos os endpoints em todo branch são parados e removidos.
  2. Todos os branches são desmontados.
  3. O storage do projeto é descarregado e seus dados são enfileirados para compactação assíncrona e eventual remoção do object storage.

A cascata é irreversível. Não há undelete, e os artefatos de storage não são recuperáveis pelo console após a cascata começar. Faça um dump lógico (pg_dump) antes de excluir se os dados importarem.

keon projects delete <project-id>

A CLI pede confirmação; passe --yes para pular ao criar scripts.

Relacionado