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.
meu-plugin/
├── manifest.json (Obrigatório)
├── backend.js (Obrigatório - entrada principal)
└── frontend/ (Opcional - interface do usuário)
└── index.html
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"]
}
id, name, version: (Obrigatórios) Identificação do plugin.backend ou entry: (Obrigatório) Nome do arquivo principal do Node.js.frontend: (Opcional) Nome da pasta contendo os arquivos estáticos da interface.access: (Opcional) URL para a página principal da interface do plugin (ex: /plugins/meu-plugin/index.html). Se informado, o painel do BrightierOS mostrará um botão Acessar Plugin.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!' });
});
};
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.
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.