← Voltar para a Home

Documentação Oficial

Sistema de Plugins

O BrightierOS é altamente extensível através do seu sistema nativo de plugins. Qualquer desenvolvedor pode criar ferramentas personalizadas, back-ends adicionais e interfaces únicas que rodam isoladamente dentro do sistema.

Um plugin é basicamente uma pasta contendo, no mínimo, um manifest.json e um arquivo JavaScript para o back-end.

Estrutura de um Plugin

meu-plugin/
├── manifest.json   (Obrigatório)
├── backend.js      (Obrigatório - entrada principal)
└── frontend/       (Opcional - interface do usuário)
    └── index.html

O manifest.json

O manifesto é o coração do plugin. Ele descreve o nome, versão e como o BrightierOS deve carregar seu código. Abaixo os campos suportados:

{
  "id": "meu-plugin",
  "name": "Nome do Plugin",
  "version": "1.0.0",
  "author": "Seu Nome",
  "description": "Descrição breve do que o plugin faz.",
  "backend": "backend.js",
  "frontend": "frontend",
  "access": "/plugins/meu-plugin/index.html",
  "permissions": ["filesystem", "network"]
}

Desenvolvendo o Backend

O arquivo principal (ex: backend.js) deve exportar uma função que recebe a instância do app Express e um objeto de api.

module.exports = (app, api) => {
  app.get('/api/plugins/meu-plugin/hello', (req, res) => {
    res.json({ message: 'Hello World!' });
  });
};

Community App Store

A Community App Store é o sistema de distribuição descentralizada de plugins do BrightierOS. Em vez de uma única loja fechada, qualquer pessoa pode criar uma loja pública no GitHub (ou em qualquer repositório Git público) e compartilhar com a comunidade.

Como criar sua própria loja

Para criar uma loja, você precisa hospedar os seguintes arquivos em um repositório Git público (sem autenticação):

/
├── store.json
└── apps.json

O store.json contém metadados da loja (nome, descrição, versão, etc), enquanto o apps.json é um array com os plugins disponíveis para download.

Cada plugin no apps.json deve conter a URL do seu próprio repositório Git no campo repository. O BrightierOS só fará o download do plugin (clonando o seu repositório específico para a pasta data/plugins) quando o usuário clicar em Instalar!

[
  {
    "id": "meu-plugin",
    "name": "Nome do Plugin",
    "version": "1.0.0",
    "repository": "https://github.com/usuario/meu-plugin.git"
  }
]

Os usuários poderão adicionar o link HTTPS da sua loja diretamente no painel do BrightierOS, e navegar pelo catálogo de plugins instantaneamente.