
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
bonfire-api
Advanced tools
API modularizada para o ecossistema Bonfire, desenvolvida com foco em escalabilidade, segurança e performance.
A Bonfire API é uma solução robusta para gerenciamento de espaços educacionais, oferecendo funcionalidades como:
# Clone o repositório
git clone https://github.com/thebonfiretech/bonfire-api.git
# Navegue para o diretório
cd bonfire-api
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp .env.example .env
# Desenvolvimento
npm run dev
# Produção
npm run build
npm start
# Outras ferramentas
npm run control-access # Gerar tokens de acesso
npm run publish # Atualizar versão
Copie .env.example para .env e configure:
# Database
MONGO_URI=mongodb+srv://<user>:<password>@<cluster>.mongodb.net/
# Authentication
PRIVATE_ACCESS_TOKEN=<sha-512-hash>
PUBLIC_ACCESS_TOKEN=<sha-256-hash>
SECRET=<jwt-secret>
# Storage (AWS S3)
STORAGE_SECRET=<aws-secret>
STORAGE_ID=<aws-access-key>
STORAGE_URL=<s3-endpoint>
STORAGE_BUCKET_NAME=<bucket-name>
# Application
PRODUCTION=false
PORT=1000
Para ambiente de produção, configure:
PRODUCTION=truebonfire-api/
├── dist/ # Build de produção
├── src/
│ ├── assets/ # Configurações e conteúdo
│ │ ├── config/ # Arquivos de configuração
│ │ └── content/ # Conteúdo estático (badwords, etc.)
│ ├── crons/ # Jobs agendados
│ ├── database/ # Modelos e funções de BD
│ │ ├── functions/ # Funções auxiliares
│ │ └── model/ # Schemas Mongoose
│ ├── middlewares/ # Middlewares Express
│ ├── resources/ # Lógica de negócio
│ ├── routes/ # Definição de rotas
│ ├── utils/ # Utilitários e serviços
│ ├── app.ts # Configuração do Express
│ └── server.ts # Ponto de entrada
├── package.json
├── tsconfig.json
└── README.md
try {
// Lógica do negócio
if (!requiredField) {
return manageError({ code: "invalid_data" });
}
// Processamento...
} catch (error) {
manageError({ code: "internal_error", error });
}
A API utiliza um sistema duplo de autenticação:
controlAccessValida tokens de acesso à API:
headers: {
'controlAccess': '<control-access-token>'
}
authValida autenticação de usuário:
headers: {
'authorization': '<jwt-token>'
}
hasAdminVerifica privilégios administrativos.
npm run control-access
Produção: https://api.thebonfire.com.br/v1
Desenvolvimento: https://api-dev.thebonfire.com.br/v1
GET /ping
GET /validate/control-access
POST /users/auth/signup
POST /users/auth/signin
GET /users/auth/me
PATCH /users/profile/update
GET /spaces/:spaceID
GET /spaces/full/:spaceID
GET /spaces/:spaceID/metrics
GET /spaces/:spaceID/users
POST /spaces/:spaceID/users/add
POST /spaces/:spaceID/users/remove
GET /economy/transactions
POST /economy/pix/:keyID
GET /economy/:spaceID/investments
POST /economy/:spaceID/investments/create
POST /classes/create
GET /classes/:classID
GET /classes/:classID/users
POST /classes/:classID/users/add
POST /posts/create
GET /posts/:postID
PATCH /posts/:postID/update
DELETE /posts/:postID/delete
POST /forms/control/create
GET /forms/control/:formControlID
POST /forms/:name/send
POST /tickets/create
GET /tickets/:ticketID
GET /tickets/space/:spaceID
POST /files/upload/:scope/:id
GET /admin/users
POST /admin/users/create
GET /admin/spaces
POST /admin/spaces/create
{
'Content-Type': 'application/json',
'controlAccess': '<control-access-token>',
'authorization': '<jwt-token>', // Para rotas autenticadas
'spaceID': '<space-id>', // Para verificação de permissões
'classID': '<class-id>' // Quando aplicável
}
manageRequestMiddleware principal que encapsula a lógica de recursos:
const exampleResource = async ({ data, manageError, ids }: ManageRequestBody) => {
try {
if (!data.requiredField) {
return manageError({ code: "invalid_data" });
}
// Lógica do negócio
return result;
} catch (error) {
manageError({ code: "internal_error", error });
}
};
// Uso na rota
router.post("/example", manageRequest(exampleResource));
uploadMiddleware para upload de arquivos:
router.post("/upload",
upload.array("files", 10),
manageRequest(uploadResource, { upload: true })
);
Distribui moedas automaticamente:
const coinDistribution: CronTask = {
name: "coinDistribution",
schedule: "0 0 * * *", // Diário às 00:00
enabled: true,
task: async () => {
// Lógica de distribuição
}
};
type ResponseErrorsParams =
| "internal_error" // 500
| "invalid_credentials" // 401
| "access_denied" // 401
| "user_not_found" // 404
| "space_not_found" // 404
| "invalid_data" // 400
| "insufficient_coins" // 409
// ... mais códigos
interface ResponseError {
statusCode: number;
message: string;
}
// No recurso
if (!requiredField) {
return manageError({ code: "invalid_data" });
}
// Resposta HTTP
{
"statusCode": 400,
"message": "Dados inválidos enviados"
}
Este documento descreve o passo a passo básico para contribuir nos projetos.
feat/nome-da-feature para novas funcionalidadesfix/descricao-do-bug para correções de bugsdocs/topico para atualizações de documentaçãochore/descricao-da-tarefa para tarefas de manutençãoFormato: <type>: <descrição curta>
feat, fix, docs, style, refactor, test, choreExemplo:
feat: adiciona validação de senha
Use a ferramenta commiter-cli para padronizar e traduzir commits automaticamente.
npm install -g commiter-cli
commiter use
? Mensagem do commit:
? Tipo de commit (feat, fix, docs, style, refactor, test, chore):
git checkout feat/nome-da-feature
git push -u origin feat/nome-da-feature
functioncamelCasePascalCaseimport type, ex.:import type { Usuario } from "./types";
express, mongoose)./utils/logger, ../utils/helper)import type { RootState } from "@store";)# Branch para nova feature
git checkout -b feat/nova-funcionalidade
# Desenvolvimento
npm run dev
# Teste as mudanças
# Commit e push
git add .
git commit -m "feat: adiciona nova funcionalidade"
git push origin feat/nova-funcionalidade
# Atualiza versão, realiza o commit e o push
npm run publish
ISC License - Veja o arquivo LICENSE para detalhes.
Documentação atualizada na versão 1.4.5
FAQs
API responsavel por gerir dados dos sistemas do Bonfire
We found that bonfire-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.