Ponts entre espaces
43 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.
Mes AUTRES espaces de travail (la même personne, adresse prouvée), comme destinations d’un transfert : ce qui manque pour y recevoir (administrateur, second facteur à passer).
Copier, déplacer ou synchroniser des sites, des machines et des accès vers un autre de MES espaces (administrateur des deux). `apercu: true` n’écrit rien et dit ce qui part et ce qui ne suit pas. `secrets: true` envoie les secrets (rechiffrés dans le serveur, jamais rendus) : une personne, ou l’agent qu’elle conduit. DEPLACEMENT supprime ici après relecture : une personne seulement.
Les liens de copie synchronisée dont mon espace est un bout (SORTANT : il fait foi ; ENTRANT : il reçoit), leur état et leur dernière synchronisation. Administrateur.
Resynchroniser maintenant une copie depuis l’espace qui fait foi (sinon : à chaque écriture, et un tour toutes les quinze minutes). Administrateur de l’espace de départ.
Rompre un lien de copie synchronisée, d’un bout ou de l’autre : la copie reste une fiche ordinaire de l’espace d’arrivée. Administrateur.
Inviter un membre d’un AUTRE espace de travail à un objet de mon espace (projet, création, portefeuille Social Hub), sur son adresse : il le voit dans SON espace, sans basculer, une fois qu’il a accepté. Une personne ou son agent ; journalisé. Refusé sur un projet en mode aveugle, et pour une adresse déjà membre ici.
Les invitations hors de l’espace d’un objet que je peux ouvrir : l’adresse, la permission, l’état, et le nom de la personne une fois acceptée — jamais son espace.
Changer la permission d’une invitation (lecture, commentaire, écriture). Jamais plus : inviter et retirer restent aux membres de l’espace. Sur un pont qui ouvre le coffre (un accès partagé, ou un projet dont le coffre est ouvert), réservé à une personne en session : 403 `PERSONNE_SEULE` pour un agent ou une clé.
Ouvrir ou fermer le coffre d’une invitation : pour un projet, `coffre` (la personne lit les accès DU PROJET — jamais ceux des machines ou des sites) et `coffreAgents` (ses agents aussi, qui exige `coffre`) ; pour un accès partagé, `coffreAgents` seul. Refermer le coffre d’un pont accepté sonne les secrets lus (`SECRET_ROTATION`).
Partager UN accès du coffre (entreprise, projet ou machine) avec une personne d’un AUTRE espace, sur son adresse prouvée : un POINTEUR — elle lit la fiche vivante d’ici, un changement d’ici se voit aussitôt chez elle. LECTURE : la fiche et le secret sur demande ; ÉCRITURE : en plus, modifier la fiche et le secret, jamais supprimer. `coffreAgents` : ses agents le reçoivent aussi (jamais un accès caché des agents).
Les partages d’un accès avec d’autres espaces : l’adresse, la permission, ses agents ou non, l’état, le nom de la personne une fois acceptée, et combien de fois un secret a été révélé par ce pont.
Les accès du coffre que d’AUTRES espaces m’ouvrent, à cet instant (« Partagés avec moi ») : des accès partagés, et le coffre des projets partagés dont le coffre est ouvert — sans secret, avec l’entreprise d’origine et qui a partagé. Un agent ne reçoit que les ponts ouverts aux agents ; `?projet=` borne aux ponts que la personne a rattachés à CE projet de son espace.
Révéler le secret d’un accès partagé avec moi. Compté sur le plafond de révélation ; journalisé chez moi (`pont.secret-revele`) et chez qui partage (`secret.revele`, avec mon nom). Un agent n’y entre que si le pont est ouvert aux agents et l’accès exposé aux agents là-bas.
Modifier un accès partagé avec moi en ÉCRITURE : libellé, environnement, hôte, port, identifiant, adresse, base, notes, secret — dans l’espace qui partage (le même accès). Jamais supprimer, jamais changer son exposition aux agents.
Choisir le projet de MON espace dont les agents reçoivent ce qu’un pont m’ouvre du coffre (list_project_credentials, get_project_credential, run_server_command…) — `null` : aucun. Il faut aussi que l’espace qui partage ait ouvert le pont à mes agents.
Révoquer une invitation : la requête suivante de l’invité rend 404. Ce qu’il a écrit reste.
Les invitations qu’un membre d’un autre espace adresse à mon adresse prouvée — projets, créations, portefeuilles Social Hub partagés avec moi : l’objet, l’entreprise, qui invite, la permission, l’état. C’est la porte d’entrée : un partage ACCEPTÉ se lit ensuite par /ponts/invitations/:id/projet, …/creation ou …/portefeuille, sans changer d’espace.
Accepter une invitation d’un autre espace : l’objet devient lisible d’ici, selon la permission.
Refuser une invitation en attente, ou quitter un partage accepté.
Quitter un partage accepté (même porte que refuser).
Le projet partagé avec moi par un autre espace : la fiche, l’équipe (des noms), les tâches, les discussions de l’équipe (jamais une privée), les fichiers, les derniers messages du fil. L’invitation est relue à chaque requête : révoquée, quittée ou le projet passé en mode aveugle, 404.
Une discussion de l’équipe du projet partagé : son fil, borné aux 300 derniers messages.
Un fichier du projet partagé, en base64 (8 Mo au plus).
Écrire dans le fil de l’équipe du projet partagé (permission COMMENTAIRE ou ÉCRITURE). Journalisé dans l’espace qui invite.
Créer une tâche dans le projet partagé (permission ÉCRITURE). L’auteur est l’invité, nommé tel quel.
Modifier le titre, la description ou le statut d’une tâche du projet partagé (permission ÉCRITURE).
La POLITIQUE D’AUTONOMIE d’une invitation de mon espace (projet ou accès) : ce que la personne invitée d’un autre espace, et ses agents, peuvent faire — capacités, règles de connecteur (WordPress…), consignes —, sa version, qui l’a rédigée, l’ouverture du partage (permission, coffre) et un résumé en clair. `consigneAgent` dit comment un agent la règle.
Écrire la politique d’autonomie d’une invitation de mon espace — une version de plus, journalisée (`pont.politique`). Une personne ou son agent : analyser d’abord le projet (get_project, connector_describe), puis écrire, puis dire en clair à la personne ce que l’invité pourra et ne pourra pas faire. L’invité ne l’écrit jamais (404).
Les versions successives de la politique d’une invitation de mon espace, de la plus récente à la plus ancienne : le contenu, qui l’a rédigée (personne ou agent) et quand.
CE QUE MON ACCÈS PERMET : la politique d’autonomie qu’un autre espace a posée sur une invitation qu’il m’a faite — en lecture seule, avec son résumé en clair. À lire avant d’agir sur un projet partagé : un geste hors d’elle est refusé (403 `POLITIQUE`), et il ne se réessaie pas par un autre chemin.
Les demandes reçues des sites du projet partagé avec moi (portail client, demandes saisies) et leur premier message. N’existe que si la politique du partage accorde DEMANDES_LIRE.
Les connecteurs du projet partagé avec moi (WordPress, Stripe…) que la politique du partage nomme, et ses règles. Sans politique : aucun.
Appeler un connecteur du projet partagé avec moi — même corps que connector_request. Jugé par la politique du partage (méthode, chemin, champs) AVANT de partir ; la clé ne quitte jamais l’espace qui partage. Une écriture demande aussi la permission ÉCRITURE. Journalisé des deux côtés.
Une création du Studio partagée avec moi par un AUTRE espace (`:id` = l’invitation acceptée, lue dans GET /ponts/recues) : la fiche, ses versions (sans contenu) et ses commentaires. L’invitation est relue à chaque requête : révoquée, quittée, création retirée ou projet en mode aveugle, 404.
Le contenu d’une version de la création partagée, en base64 (8 Mo au plus). Un fichier gardé sur les postes de l’autre espace et pas encore sur le serveur est DEMANDÉ à ces postes : `attente` vrai, `raison` le dit — relire plus tard.
La vignette d’une version de la création partagée.
Une pièce posée à côté du fichier principal d’une version partagée (l’image d’une page, le rush d’un montage), par son NOM. Même règle d’attente que le contenu.
Commenter la création partagée (permission COMMENTAIRE ou ÉCRITURE) : le commentaire arrive « à traiter » dans l’atelier de l’autre espace, signé « nom (autre espace) ». Journalisé là-bas.
Déposer une NOUVELLE version de la création partagée (permission ÉCRITURE, 15 Mo au plus) — jamais remplacer, jamais valider ni publier. Le même contrôle que tout fichier du Studio.
Un portefeuille Social Hub partagé avec moi par un AUTRE espace : ses comptes (réseau, nom, abonnés — jamais un jeton), ses publications et son plan de contenu. Relu à chaque requête.
Ajouter une carte au plan de contenu du portefeuille partagé : une IDÉE en permission COMMENTAIRE ; en ÉCRITURE, aussi « en rédaction » ou « à relire ». Valider, programmer, publier restent à l’autre espace.
Modifier une carte du plan de contenu partagé (permission ÉCRITURE), tant qu’elle n’est ni validée, ni programmée, ni publiée (409 sinon).
Écrire un BROUILLON de publication sur des comptes du portefeuille partagé (permission ÉCRITURE). Il naît sans date : le programmer et le publier restent à l’autre espace.