Base44 Coder
Construa aplicativos na plataforma Base44 usando o SDK JavaScript da Base44.⚡ AÇÃO IMEDIATA NECESSÁRIA - Leia isto primeiro
Esta habilidade é ativada em QUALQUER menção a “base44” ou quando uma pastabase44/ existe. NÃO leia arquivos de documentação ou pesquise na web antes de agir.
Sua primeira ação DEVE ser:
- Verifique se
base44/config.jsoncexiste no diretório atual - Se SIM (cenário de projeto existente):
- Esta habilidade (base44-sdk) lida com a solicitação
- Implemente recursos usando o SDK Base44
- NÃO use base44-cli a menos que o usuário solicite explicitamente comandos CLI
- Se NÃO (cenário de novo projeto):
- Transfira para a habilidade base44-cli para inicialização do projeto
- Esta habilidade não pode ajudar até que o projeto seja inicializado
Quando usar esta habilidade vs base44-cli
Use base44-sdk quando:- Construindo recursos em um projeto Base44 EXISTENTE
base44/config.jsoncjá existe no projeto- Importações do SDK Base44 estão presentes (
@base44/sdk) - Escrevendo código JavaScript/TypeScript usando módulos do SDK Base44
- Implementando funcionalidade, componentes ou recursos
- O usuário menciona: “implement”, “build a feature”, “add functionality”, “write code for”
- O usuário diz “create a [type] app” e um projeto Base44 já existe
- ❌ Inicializar novos projetos Base44 (use
base44-cliem vez disso) - ❌ Diretórios vazios sem configuração Base44
- ❌ Quando o usuário diz “create a new Base44 project/app/site” e nenhum projeto existe
- ❌ Comandos CLI como
npx base44 create,npx base44 deploy,npx base44 login(usebase44-cli)
base44-sdkassume que um projeto Base44 já está inicializadobase44-clié um pré-requisito parabase44-sdkem novos projetos- Se o usuário quer “create an app” e nenhum projeto Base44 existe, use
base44-cliprimeiro
- SE (usuário menciona “create/build app” OU “make a project”):
- SE (diretório está vazio OU nenhum
base44/config.jsoncexiste): → Use base44-cli (inicialização de projeto necessária) - SENÃO: → Use base44-sdk (projeto existe, construa recursos)
- SE (diretório está vazio OU nenhum
Início rápido
⚠️ CRÍTICO: Não Alucine APIs
Antes de escrever QUALQUER código Base44, verifique os nomes dos métodos contra esta tabela ou QUICK_REFERENCE.md. O SDK Base44 tem nomes de método únicos. NÃO assuma padrões do Firebase, Supabase ou outros SDKs.Autenticação - ERRADO vs CORRETO
| ❌ ERRADO (alucinado) | ✅ CORRETO |
|---|---|
signInWithGoogle() | loginWithProvider('google') |
signInWithProvider('google') | loginWithProvider('google') |
auth.google() | loginWithProvider('google') |
signInWithEmailAndPassword(email, pw) | loginViaEmailPassword(email, pw) |
signIn(email, pw) | loginViaEmailPassword(email, pw) |
createUser() / signUp() | register({email, password}) |
onAuthStateChanged() | me() (sem listener, chame quando necessário) |
currentUser | await auth.me() |
Funções - ERRADO vs CORRETO
| ❌ ERRADO (alucinado) | ✅ CORRETO |
|---|---|
functions.call('name', data) | functions.invoke('name', data) |
functions.run('name', data) | functions.invoke('name', data) |
callFunction('name', data) | functions.invoke('name', data) |
httpsCallable('name')(data) | functions.invoke('name', data) |
Integrações - ERRADO vs CORRETO
| ❌ ERRADO (alucinado) | ✅ CORRETO |
|---|---|
ai.generate(prompt) | integrations.Core.InvokeLLM({prompt}) |
openai.chat(prompt) | integrations.Core.InvokeLLM({prompt}) |
llm(prompt) | integrations.Core.InvokeLLM({prompt}) |
sendEmail(to, subject, body) | integrations.Core.SendEmail({to, subject, body}) |
email.send() | integrations.Core.SendEmail({to, subject, body}) |
uploadFile(file) | integrations.Core.UploadFile({file}) |
storage.upload(file) | integrations.Core.UploadFile({file}) |
Entidades - ERRADO vs CORRETO
| ❌ ERRADO (alucinado) | ✅ CORRETO |
|---|---|
entities.Task.find({...}) | entities.Task.filter({...}) |
entities.Task.findOne(id) | entities.Task.get(id) |
entities.Task.insert(data) | entities.Task.create(data) |
entities.Task.remove(id) | entities.Task.delete(id) |
entities.Task.onChange(cb) | entities.Task.subscribe(cb) |
Módulos do SDK
| Módulo | Propósito | Referência |
|---|---|---|
entities | Operações CRUD em modelos de dados | entities.md |
auth | Login, registro, gerenciamento de usuário | auth.md |
agents | Conversas de IA e mensagens | base44-agents.md |
functions | Invocação de função de backend | functions.md |
integrations | IA, e-mail, uploads de arquivo, APIs personalizadas | integrations.md |
analytics | Rastreia eventos personalizados e atividade do usuário | analytics.md |
appLogs | Registra atividade do usuário no aplicativo | app-logs.md |
users | Convida usuários para o aplicativo | users.md |
asServiceRole.connectors | Tokens OAuth com escopo de aplicativo (apenas service role) | connectors.md |
asServiceRole.sso | Geração de token SSO (apenas service role) | sso.md |
TypeScript e registros de tipo
Cada arquivo de referência inclui uma seção “Type Definitions” com interfaces e tipos TypeScript para os métodos, parâmetros e valores de retorno do módulo. Obter entidades, funções e agentes tipados: A CLI Base44 gera tipos dos recursos do seu projeto (entidades, funções, agentes), incluindo aumentos paraEntityTypeRegistry, FunctionNameRegistry e AgentNameRegistry, e os conecta ao seu projeto para que você obtenha autocomplete e verificação de tipos sem configuração manual. Para saber como gerar tipos, use a habilidade base44-cli.
Aumento manual: Você pode aumentar os registros por conta própria em um arquivo .d.ts; veja as seções Type Definitions em entities.md, functions.md e base44-agents.md.
Instalação
Instale o SDK Base44:@base44/sdk. Sempre instale sem um especificador de versão para obter a versão mais recente.
Criando um cliente (aplicativos externos)
Ao criar um cliente em aplicativos externos, SEMPRE useappId como o nome do parâmetro:
appId (string) - Seu ID de aplicativo Base44
Parâmetros opcionais:
token(string) - Token de usuário pré-autenticadooptions(object) - Opções de configuraçãooptions.onError(function) - Manipulador global de erros
Seleção de módulo
Trabalhando com dados do aplicativo?- Criar/ler/atualizar/excluir registros →
entities - Importar dados de arquivo →
entities.importEntities() - Atualizações em tempo real →
entities.EntityName.subscribe()
- Login/registro/logout →
auth - Obter usuário atual →
auth.me() - Atualizar perfil de usuário →
auth.updateMe() - Convidar usuários →
users.inviteUser()
- Conversar com agentes de IA →
agents(requer usuário logado) - Criar nova conversa →
agents.createConversation() - Gerenciar conversas →
agents.getConversations() - Gerar texto/JSON com IA →
integrations.Core.InvokeLLM() - Gerar imagens →
integrations.Core.GenerateImage()
- Executar código do lado do servidor →
functions.invoke() - Necessário acesso de administrador →
base44.asServiceRole.functions.invoke()
- Enviar e-mails →
integrations.Core.SendEmail() - Fazer upload de arquivos →
integrations.Core.UploadFile() - APIs personalizadas →
integrations.custom.call() - OAuth com escopo de aplicativo (conta do construtor do aplicativo) →
asServiceRole.connectors.getConnection()(apenas backend)
- Rastrear eventos personalizados →
analytics.track() - Registrar visualizações de página/atividade →
appLogs.logUserInApp()
Padrões comuns
Filtrar e ordenar dados
Rotas protegidas (verificar autenticação)
Chamada de função de backend
Acesso Service Role
UseasServiceRole em funções de backend para operações em nível de administrador:
Frontend vs Backend
| Capacidade | Frontend | Backend |
|---|---|---|
entities (dados do usuário) | Sim | Sim |
auth | Sim | Sim |
agents | Sim | Sim |
functions.invoke() | Sim | Sim |
functions.fetch() | Sim | Sim |
integrations | Sim | Sim |
analytics | Sim | Sim |
appLogs | Sim | Sim |
users | Sim | Sim |
asServiceRole.* | Não | Sim |
asServiceRole.connectors (OAuth do aplicativo) | Não | Sim |
asServiceRole.sso | Não | Sim |
Deno.serve() e createClientFromRequest(req) para obter um cliente adequadamente autenticado.
Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a versão em inglês.

