Imagem de capa do projeto: Gerenciador de Workspaces EM ANDAMENTO

Resumo técnico

Gerenciador de Workspaces é o sistema multi-tenant do NEXUS: ambientes segregados por equipe, projeto ou área (Marketing, Dev, SecOps, Finanças), com membros e papéis (Owner, Admin, Member, Viewer) por workspace, alternância instantânea em 1-clique (sem relogar) e ecossistema de plugins por workspace — tudo com schema lazy em 3 tabelas e núcleo em core/workspaces.php.

Escopo executado

  • plugin.json: v1.0.0, slug nexus-workspaces (sem legacy_slugs), name "Gerenciador de Workspaces", categoria "Administração & Equipes", is_core: false, author "NEXUS Core".
  • Núcleo (core/workspaces.php, 377 linhas, strict_types) — workspaces_install() (lazy, static $installed, try/catch) cria 3 tabelas: nexus_workspaces (slug UNIQUE, icon/color, owner_username, is_default, status, idx_owner/idx_status), nexus_workspace_members (role default member, permissions JSON, UNIQUE uk_ws_user, FK CASCADE) e nexus_workspace_plugins (plugin_slug, is_active, config_json, UNIQUE uk_ws_plugin, FK CASCADE).
  • Seed automático — se vazio, cria o Workspace "geral" (Workspace Principal) com owner admin e is_default 1.
  • Config (nexus_workspaces_settings) — allow_user_create (true), default_workspace_slug (geral) e isolation_mode (soft/strict validado, fallback soft).
  • Contexto por sessão — workspace_current(): sessão → primeiro acessível → default → primeiro → fallback id 1; workspace_switch() valida status + associação de membro (exceto admin/owner).
  • Listagem por papel — admin vê todos os workspaces com member_count; demais usuários só os que participam (JOIN); flag is_active.
  • CRUD — workspace_save() (nome obrigatório, slug automático, colisão → sufixo rand(100,999), criador vira Owner), workspace_delete() (bloqueia exclusão do default, reseta sessão).
  • Membros — workspace_member_save() valida usuário em users, papéis owner/admin/member/viewer (inválido → member), REPLACE INTO (upsert); workspace_member_remove() por usuário.
  • Backend do plugin (82 linhas) — workspaces_user_search (LIKE username/e-mail, LIMIT 10, iniciais do avatar), workspaces_get_members (JOIN users para e-mail/avatar, ordenado por papel) e workspaces_stats (totais ativos/membros).
  • API: 11 actions — workspaces_list, workspaces_current, workspaces_switch, workspaces_save (merge $_GET+$_POST), workspaces_delete, workspaces_members, workspaces_user_search, workspaces_member_save, workspaces_member_remove, workspaces_settings, workspaces_settings_save.
  • UI (tab.php, 660 linhas, tema sky/slate, ícone layers, grupo "Administração & Equipes") — 3 sub-abas:
  • - Workspaces — stats (Workspace Ativo, Total, Sua Função) + grid de cards (slug, descrição, member_count, dono, badge 🟢 ATIVO, botão ENTRAR NO WORKSPACE, editar/excluir — excluir oculto no default). - Membros — autocomplete AJAX com debounce 250ms (avatar ou iniciais + role + e-mail), seletor de papel (Administrador/Membro/Visualizador), tabela com badges coloridos (owner âmbar, admin sky, demais slate) e "Remover" oculto para owner. - Configurações (aba obrigatória) — allow_user_create, default_workspace_slug + caixa de instruções "Como funciona o Sistema de Workspaces".

  • Modal próprio (x-teleport) — criar/editar workspace com nome, descrição, ícone (layers/folder/briefcase/shield/cpu) e cor (sky/emerald/indigo/amber/rose).
  • Segurança HTTP — Alpine envia X-CSRF-Token + csrf_token + Authorization: Bearer (API Key) em todas as chamadas.
  • Fastr — /workspaces → workspaces_list. Sem cron.

Stack e ferramentas

  • PHP 8 (sem framework, strict_types no core e no backend)
  • MySQL 8 (3 tabelas lazy: nexus_workspaces, nexus_workspace_members, nexus_workspace_plugins)
  • Alpine.js + Tailwind CSS (premium light, sky/slate)
  • REST API (api.php?action=...) com CSRF + Bearer
  • Plugin NEXUS (PluginManager: tabs, docs, API actions, Fastr)

Tags operacionais

  • Workspaces
  • Multi-tenant
  • Equipes
  • Projetos
  • Permissões
  • Segregação
  • Administração
  • Membros
  • Papéis
  • Plugin NEXUS

Resultado operacional

  • Ambientes isolados sem novas instâncias: cada equipe/projeto ganha seu workspace com dados e permissões próprios.
  • Alternância em 1-clique: o workspace ativo fica na sessão e muda sem relogar.
  • Papéis por membro: Owner, Admin, Member e Viewer com validação de existência do usuário.
  • Isolamento configurável: modo soft/strict + workspace padrão para novos usuários.
  • Ecossistema de plugins por workspace: tabela nexus_workspace_plugins com is_active e config_json por ambiente.
  • Segurança por padrão: slug único, default não excluível, CSRF + Bearer em todas as chamadas.
  • Busca rápida de usuários: autocomplete com avatar/iniciais e debounce de 250ms.
  • Comando /workspaces no chat.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Módulo de isolamento e governança de ambientes de trabalho no NEXUS. Permite criar e alternar workspaces segmentados por cliente ou projeto, com controle granular de tarefas, relatórios e permissões de acesso para equipes.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.