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, slugnexus-workspaces(semlegacy_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(roledefaultmember,permissionsJSON, UNIQUEuk_ws_user, FK CASCADE) enexus_workspace_plugins(plugin_slug,is_active,config_json, UNIQUEuk_ws_plugin, FK CASCADE). - Seed automático — se vazio, cria o Workspace "geral" (Workspace Principal) com
owner admineis_default 1. - Config (
nexus_workspaces_settings) —allow_user_create(true),default_workspace_slug(geral) eisolation_mode(soft/strictvalidado, fallbacksoft). - Contexto por sessão —
workspace_current(): sessão → primeiro acessível → default → primeiro → fallback id 1;workspace_switch()validastatus+ 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); flagis_active. - CRUD —
workspace_save()(nome obrigatório, slug automático, colisão → sufixorand(100,999), criador vira Owner),workspace_delete()(bloqueia exclusão do default, reseta sessão). - Membros —
workspace_member_save()valida usuário emusers, papéisowner/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(JOINuserspara e-mail/avatar, ordenado por papel) eworkspaces_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, íconelayers, grupo "Administração & Equipes") — 3 sub-abas: - 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.
- 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".
Stack e ferramentas
- PHP 8 (sem framework,
strict_typesno 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,MembereViewercom 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_pluginscomis_activeeconfig_jsonpor 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
/workspacesno chat.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
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
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- REST API
- Plugin NEXUS
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.