Salta al contenuto
KAMOUniverse

Changelog

Cosa c'è di nuovo.

Ogni miglioramento alla piattaforma, come si spedisce.

  1. · kamo-shared-library

    Link di tendenza — integer derivano, il minimo movimento inverso con il trasporto a due tempi, e le due porte (KamoCollab CP03 T5)

    Le tendenze di debolezza sono "controlli propri, collegati e opzione per essere pienamente indipendente» (decisione 6). TendencyLinks.LINKS detiene i sette link di CP03 spec §5.4; derivare è 2.5 x (s - pivot) arrotondato metà su in interi; inverse rotonde la somma di destinazione una volta e porta un morsetto Il termine è breve all'altro termine (rulings CP03-T5-1..3).

  2. · kamo-internal

    Squadre di un membro sulla scheda Posizione del profilo, salvate sul percorso del membro, e la cascata accenna a squadre (KamoCollab CP01 T24)

    La carta di posizione guadagna team sotto il titolo di lavoro: chip per ogni visualizzatore di la carta, una scelta multipla sulle squadre dell'organizzazione per una sicurezza amministratore, salvato come {teamIds} a PUT ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** (membro di endpointTeams). Squadre il profilo non poteva leggere non sono offerti per editing, quindi un salvataggio non sostituisce mai le squadre che nessuno ha visto (CP01-T14-4). Un rifiuto mostra sul campo nelle parole del dizionario dove li ha. Il membro la scheda di sicurezza indica squadre, e Team: le fonti ottengono un tono del proprio.

  3. · kamo-shared-library

    Il registro di trait 60-chiave, il gruppo predefinito e il vocabolario Docstion (KamoCollab CP03 T4)

    Personalità TraitKey porta un TraitSpec per chiave (famiglia, tipo, gamma, default, scelte, chiavi collegate, gruppo UI, unità, adattabilità, chiavi etichetta), REGISTRY VERSION cp03-1, danome e sceltaLabelKey; PersonalityDefaults detiene il CHANNEL ORDER, ETIQUETTE e DECISION PRIORITÀ di default di spec 5.3.4. Il pacchetto collab aggiunge CollabKind e i tre enum di livello restrittivo più i trigger di escalation. Le classi pure, senza fagioli; nulla le legge ancora.

  4. · SecurityService

    Il DDL applicato a mano per lo strato ORG charter, le colonne di personalità e di Docstion e gli archetipi org, e il suo test di contratto (KamoCollab CP03 T2)

    Spec §5.1's block, carattere per carattere: il dodici nullable tratto/collab colonne sulle cinque tabelle del proprietario del charter, org charter items (cascading con il suo org), org personality archetypes (titolo unico per org, caso-insensibile) e i loro oggetti (cascading con l'archetipo), e un archetype ref parziale indice per tabella proprietario per il controllo archetype in-use. Il compito 3 lo applica.

  5. · kamo-internal

    La scheda Teams su Essential Setup, nel menu impostazioni, sulla pagina di atterraggio Impostazioni e sulla barra home admin (KamoCollab CP01 T23)

    /settings/essential?tab=teams monta TeamManager dopo i titoli di lavoro, con i suoi aiuto colonna (purpose, caratteristiche con la cascata dei diritti, best practice, la articolo charter). Il menu delle impostazioni guadagna { chiave: 'teams' } dopo il lavoroTitles, la pagina di atterraggio una carta Teams accanto Dipartimenti e titoli di lavoro, e la casa admin bar a Teams entry after Job Titles (master R1-37). Test: essenzialeSetupExposure pin R1-37 (ogni voce del menu di configurazione essenziale ha una carta di atterraggio e una voce della barra di amministrazione, in ordine del menu); risolve tutte le chiavi runtime della carta di atterraggio, che check-i18n-keys non possono vedi; squadreTab pins il posto, il componente e l'aiuto della scheda.

  6. · kamo-internal

    Dialogo di squadra di TeamManager — nome, timeout, membri e lead, descrizione e charter, ruoli e diritti, salvati in una sola chiamata (KamoCollab CP01 T22)

    Aggiungi Team, ogni riga Modifica e la chiamata dello stato vuoto all'azione aprire una finestra di dialogo: il nome, la sessione timeout, i membri (chips, e il membro picker aperto sui membri attuali), il piombo (consiglio da quei membri, "No lead" permesso), la descrizione con il suo contatore, CharterEditor al TEAM livello, i ruoli associati a nessuno forzato in (D15), e i diritti diretti attraverso PermissionGroups. Un POST o PUT invia ogni campo; NON SPECIFIED non viene mai inviato. Un rifiuto è detto nelle sue parole, a il suo campo quando ne ha uno; dirittiRicalcolati: false offerte Ricalcolo autorizzazioni. Il live rinfresca si ferma mentre la finestra di dialogo è aperta. Il raccoglitore multi-seletto guadagna inizialePicked: si apre sulle persone già scelte, e la sua risposta è la tutta la selezione.

  7. · SecurityService

    Gli input dell'elenco visibile provengono dal grafico org — subordinati, AI supervisiona e membri AI come stringhe id; le coppie di supervisori manager e AI sono andati (KamoCollab CP02 T15)

    # Now take the call # # and read the call # grafo org dell'organizzazione dalla cache 60 s (orgGraphCache.get): - subordinatiMemberIds = report(caller, true) che sono record-attivi e non sintetico, solo con il diritto subordinato e non il diritto all-org; - aiSuperviseeIds = i nodi AI il cui supervisore è il chiamante (mai se stesso); - aiMemberIds = ogni nodo AI; - orgMemberIds (solo a destra) e nomi come prima. Non chiama più access.managerPairs o aiMembers.artificialMembers per visibilità. VisibilityInputs.toBody() invia i tre set come stringhe in atto di managerPairs e aiSupervisorPairs. E la sua e'... La dipendenza TeamMemberRepo viene eliminata. Un middle manager registrato-inattivo non nasconde più i rapporti sotto di essi (D19); un membro TERMINATO il cui record è ancora attivo rimane un subordinato, come il il filtro tm.recordState.isActive li ha tenuti. ComputeService accetta i set dal CP02 T14 (deployed); T16 rimuove la sua coppia camminare solo dopo che questo è vivo.

  8. · SecurityService

    GET /api/security/org-chart — il grafico delle persone org dal grafico org: membri del team che non sono sintetici, inattivi contrassegnati, dipartimenti con le loro teste, team con i loro lead, ogni id una stringa e nessun livello, ruolo o diritto (KamoCollab CP02 T13)

  9. · kamo-internal

    TeamManager, la tabella delle squadre — righe, stati di carico ed eliminare (KamoCollab CP01 T21)

    La tabella delle squadre (spec §5.10, D22), come JobTitleManager elenca i titoli di lavoro: team (titolo e prima riga della descrizione), membri, piombo, requisiti, ruoli associati, diritti diretti e timeout, con il CommerceSkeleton, EmptyState e ErrorState-with-Retry stati. Cancella passa attraverso ConfermareDialog nominare il conteggio dei membri; si dice un rifiuto team.error parole, altrimenti la frase del servizio. Vivere attraverso useOrgChanges(['teams', 'member-security']), si fermò mentre la conferma è aperto; ogni carico è numerato, quindi un rinfresco in volo quando un cancella atterra non può riportare indietro la riga. Nulla lo monta fino a quando il Task 23 aggiunge la scheda; Task 22 aggiunge i pulsanti Aggiungi e Modifica con la loro finestra di dialogo.

  10. · SecurityService

    La linea manager legge il grafico org — i controlli del ciclo su un grafico fresco, la directory sulla cache, e un manager del membro ha bisogno di MANAGE MEMBER SECURITY per cambiare (KamoCollab CP02 T12)

    - MemberSecurityController: rifiutareManager mantiene l'auto, org e record-attivo Rifiuti e testa l'anello con il mezzo. Il limite va. touchesMemberSecurity acquisisce managerId, rispetto al dipartimento (solo un cambiamento reale ha bisogno del diritto; un id non leggibile conta come uno) (D21, D22). - ManagerStepHandler: il controllo del passo MANAGER di noleggio è lo stesso test su un grafico caricato all'interno della sua transazione; MANAGER OF e il limite di profondità. - TeamMemberDirectoryController: un grafico cache per pagina, letto solo quando una riga chiede; directReports = rapporti record-attivi (id, false), così conta AI supervisionati; l'accenno picker = candidato == membro o managerChain(candidate) contiene membro.

  11. · kamo-internal

    I team client — tipi, TeamsApiError e le dieci chiamate sui relè di squadra (KamoCollab CP01 T20)

    app/lib/teams/teamsApi.ts: Team, TeamDetail, TeamMemberRow, TeamRef, TeamWrite, TeamSaved; parseTeam (tollerante: ids as strings, liste mancanti [], un diritto il cui impostazione non è GRANTED o NUKE caduto); TeamsApiError(messaggio, stato, ragione, campo, memberId), letto dal corpo o l'involucro dei dettagli del proxy, con solo una frase scritta per le persone come suo messaggio; e listTeams, getTeam, creareTeam, updateTeam, deleteTeam, getTeamMembers, setTeamMembers, recalculateTeamRights, getMemberTeams, setMemberTeams sopra autenticato Scambio con credenziali: 'include'.

  12. · kamo-internal

    Il cliente charter conosce TEAM, e le squadre di relè BFF (KamoCollab CP01 T19)

    CharterLevel acquisisce TEAM e CharterSubject teamIds di un membro ipotetico; SalvaLayer('TEAM') Due relè: /api/security/teams/** (GET, POST, PUT, DELETE) e E' il momento giusto. (GET, PUT), ciascuno attraverso forwardToApi e relayUpstream, segmenti re-encoded e dot segmenti rifiutati. vitest ora raccoglie app/api/**/ tests , dove si trova il test di relè.

  13. · SecurityService

    Segnalazioni leggere il grafico org — un campo TEAM e una parte TEAM raggiungono l'intero sottotetto, AI supervisionati inclusi (KamoCollab CP02 T11)

    ReportScopeResolver.reportsTo è report(member, true) del grafico cache: transitivo e unbounded (la vecchia passeggiata si è fermata dopo dieci livelli), seguendo la linea di segnalazione, quindi un AI con Nessun manager è nella squadra del suo supervisore. Una quota TEAM raggiunge il manager i suoi nomi chiave e tutti sotto di loro a qualsiasi profondità (ha raggiunto i loro rapporti diretti solo). Nessun rapporto nomina una squadra destra e nessuna parte TEAM esiste, quindi la produzione è invariata.

  14. · SecurityService

    Squadre nella creazione di membri — teamIds su creato-team-member, controllato prima di tutto è scritto, unito all'interno della transazione di creazione prima dei primi diritti applicati, annunciato dopo l'impegno (KamoCollab CP01 T14A)

    # POST # (e i percorsi /create e /bulk-create che condividono MemberCreationService.create) prendere un team opzionaleIds per una persona o un AI (master R1-36). Assente, null e [] nome nessuna squadra e non ha bisogno di diritto, quindi una creazione senza team è invariata. - Controllato dopo i controlli AI e prima della ricerca utente, ogni rifiuto con teamIds di campo e nulla scritto: 400 INVALID FIELD, 403 NON PERSONALE senza MANAGE MEMBER SECURITY o un aperto finestra dio (Creator.maySetTeams, riempito da creatorOf), 400 NOT A TEAM MEMBER per un membro di base, 409 TOO MANY TEAMS oltre 25 (non leggere), 400 TEAM NOT FOUND per un altro org o una squadra sconosciuta, 400 TOO MANY MEMBERS per un team completo (TeamValidator.newMemberTeams). - Scritto da TeamWriter.joinNewMember, MANDATORY senza @RetryOnDbConflict, attraverso il nuovo squadre. NewMemberTeams, subito dopo il salvataggio del membro e prima dello specchio, il primo applicato diritti (che così includono il livello TEAM) e un noleggio di AI; arrossito, mai catturato: un membro mai esiste con la metà delle sue squadre. Un 40001 viene riattivato interamente dal chiamante (l'esistente 503 RETRY). - TeamService.afterCommit racconta al TeamChangeListeners una volta che la creazione commette, mai dopo una rollback; il benvenuto rimane dopo l'impegno (a8966fd). Rulli CP01-T14A-1..3; master CP-D96.

  15. · kamo-internal

    Il filtro di accesso offre impersonazione e Enter-As (KamoCollab CP00 T11)

    SecurityService ora scrive IMPERSONATION STARTED, IMPERSONATION ENDED e ENTER AS nel registro di accesso dell'org. L'elenco degli eventi (accessLogEvents.ts, che il filtro e la griglia entrambi leggono) rispecchia la libreria condivisa enum e guadagna i tre, nel suo ordine, detto nelle parole del dizionario. Un nuovo test apre il filtro stesso e detiene i tre a AccessLogEventType; il parser Java enum si muove in condivisoLibPath così entrambi i test lo condividono.

  16. · SecurityService

    La politica di chat di SecurityService legge i fatti dei membri dal grafico org, un grafico caricato per snapshot (KamoCollab CP02 T10)

    ChatPolicyBeanConfig costruisce ChatPolicySnapshotLoader con il grafico costruttore e orgGraphCache:fresh (ruling CP02-T17-3), come MediaService fa, così le annotazioni di chat del gallo e la scheda membro leggere lo stesso fatti come ogni altra domanda di gerarchia. L'eredità chat fatti repository non è più iniettato; condiviso-lib lo rimuove in Task 18. ChatPolicyBeanConfigTest: i fatti del caricatore sono MemberFactsFromGraph del grafo fresco() restituisce per il org id (mai ottenere()); nessun set attivo chiede di no grafico; il servizio mantiene la sua snapshot fino a quando non viene invalidata; un vecchio cache di 59 s grafo non viene utilizzato; e il filo di fagioli in un contesto senza repository legacy, dove l'editore e l'ascoltatore NATS rendono ogni istantaneo successivo leggere una nuovo grafico. ReferenceOrgGraph diventa pubblico con i membri() e build().

  17. · SecurityService

    Un dipartimento ottiene una testa - PUT****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************KamoCollab CP02 T)

  18. · SecurityService

    Ogni grafico di SecurityService scrive annuncia il cambiamento, la cucitura della squadra ascolta, e un ratchet lo mantiene così (KamoCollab CP02 T8)

    Ogni percorso di scrittura del CP02 spec §3.5 (W1-W15) chiama ******************************************************************************) con le cause di §5.4.2: sicurezza dei membri (role, dipartimento, titolo di lavoro, manager, livello, proprietario, tipo di membro), il profilo PUT (stato, intelligenza, supervisore AI, rispetto ai valori letto prima del salvataggio), creazione membro, registrazione, org creare e lasciare, AI retire, il noleggio Passo MANAGER, dipartimenti, titoli di lavoro, eliminazione del ruolo, e creazione del portale e fatturazione membro. Lo specchio di sicurezza-provider annuncia la propria organizzazione (dirigendo CP02-T8-1). OrgGraphTeamChangeListener implementa la cucitura TeamChangeListener di CP01 con la causa TEAM. OrgGraphPublisherCoverageTest (D15) non riesce quando un file scrive un fatto grafico senza il editore, fuori COVERED BY SEAM (teams/TeamWriter.java) e ALLOWED (con motivi), nominare il file, la linea e il modello.

  19. · SecurityService

    Squadre sulla scheda membro e nella ricerca directory — [{id, title}] per titolo, un team letto per pagina (KamoCollab CP01 T16)

    GET /api/security/members/{id}/card nomina le squadre di un membro del team ([] in nessuna squadra; lasciato fuori quando la lettura fallisce, come sul profilo). E' il momento giusto. dà a ogni squadra di fila le sue squadre da una trovareTeamRefsByMemberIdIn per i membri del team della pagina (TeamService.teamsOfMembers, che teamOf ora utilizza, quindi c'è una regola d'ordine); una riga di membro normale non ha squadre e non viene chiesto circa. /ai-membri e /impersonation-targets sono invariati.

  20. · SecurityService

    Squadre nelle opinioni dei diritti efficaci — livello delle squadre della cascata di diagnostica e Team: fonti sui diritti applicati (KamoCollab CP01 T15)

    La cascata di diagnosi (GET) elenca un membro del team squadre tra il titolo di lavoro e il membro, {teamId, titolo, ruoli, diritti}, nell'ordine della cascata; «Team: <title> (tramite il ruolo <role>)» e «Team: <title>» dopo il lavoro titolo e prima del membro. Un lettore, una squadra. TeamLevelSources: le squadre di TeamLevels, poi i loro ruoli e diritti diretti; una domanda per un membro in nessuna squadra, nessuno per un cliente.

  21. · SecurityService

    Le squadre di un membro del profilo — GET|PUT ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************KamoCollab CP01 T14)

  22. · SecurityService

    PUT****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************KamoCollab CP01 T13)

    Il team charter endpoint di spec §5.6/§5.7 su LayerCharterController, accanto al ruolo, dipartimento e livello di lavoro: CONFIGURE SYSTEM o Dio; il sentiero id, sconosciuto la squadra e la squadra di un altro org sono tutti 404 TEAM NOT FOUND (registrando CP01-T13-1); charterItems è richiesto e [] chiarisce; TeamWriter.updateCharter convalida gli articoli come il livello TEAM nella sua transazione, poi TeamService. dopoWrite annuncia il salvataggio una volta. Una modifica charter non calcola nessuno e non è un fatto grafico. Risposte {charterItems}. La regola del team path-id (testo UUID canonica, altrimenti 404 senza ricerca, CP01-T10-1) si sposta da TeamController a TeamWire.pathTeamId così entrambi i controller lo condividono.

  23. · SecurityService

    The TEAM charter layer — a member's teams after the job title, the TEAM subject, teamIds, and team hide markers (KamoCollab CP01 T12)

    A member's teams become TEAM layers between the job title and the member, all at one rank and ordered by lower-case title then id; the teams' roles join the ROLE layer. Only staff are looked up, with one indexed query, so a member in no team resolves exactly as before (pinned against layers and effective items captured on the unchanged loader; no stamp hash, R1-1). A TEAM subject resolves its roles (rank 0), then the team's layer, with the dialog's unsaved roles, description, title and items. CharterSubject gains teamIds (a hypothetical member's teams); a team of another org, as a TEAM subject or in teamIds, is 404 SUBJECT_NOT_FOUND and none of its items or roles are read (Review Focus 4). CharterReferenceValidator finds team charter items: a TEAM marker may hide role, department and job-title items, a MEMBER marker may hide a team's item, and a team item of another org is SUPPRESS_TARGET_NOT_FOUND. **************** used TEAM as its unknown level; TEAM became a level in cp01:5, so it now uses PLANET.

  24. · kamo-internal

    "Calls from AI team member" su un proprio profilo (SP95 T27)

    Il profilo di una persona guadagna una carta nella sua sala di lavoro: se il loro membri del team AI dell'organizzazione possono telefonare loro, e su quale del loro numeri. L'interruttore accende un consenso permanente per il numero scelto (il primo per impostazione predefinita) o off, e la scelta di un altro numero mentre esso è su mosse il consenso là; entrambi salvano subito attraverso il nuovo BFF relè del percorso ai-call-consent di SecurityService. Un consenso lasciato su un il numero che non è più sul profilo legge come off, con "il tuo numero cambiato"; un profilo senza numero ne chiede uno prima. La carta dice una chiamata chiesto in una chat è permesso anche quando questo è spento, e ri-reads quando il registro del membro cambia altrove. Un amministratore di sicurezza vede la scheda di un collega in sola lettura, sottoscritta per qualcun altro e nominare chi può cambiarlo. I cancelli sono aiCallsView (self or MANAGE MEMBER SECURITY, su una persona salvata che è una membro del team) e aiCallsEdit (la persona stessi), con una riga di tavolozza.

  25. · kamo-internal

    "Calls from AI team member" su un proprio profilo (SP95 T27)

    Il profilo di una persona guadagna una carta nella sua sala di lavoro: se il loro membri del team AI dell'organizzazione possono telefonare loro, e su quale del loro numeri. L'interruttore accende un consenso permanente per il numero scelto (il primo per impostazione predefinita) o off, e la scelta di un altro numero mentre esso è su mosse il consenso là; entrambi salvano subito attraverso il nuovo BFF relè del percorso ai-call-consent di SecurityService. Un consenso lasciato su un il numero che non è più sul profilo legge come off, con "il tuo numero cambiato"; un profilo senza numero ne chiede uno prima. La carta dice una chiamata chiesto in una chat è permesso anche quando questo è spento, e ri-reads quando il registro del membro cambia altrove. Un amministratore di sicurezza vede la scheda di un collega in sola lettura, sottoscritta per qualcun altro e nominare chi può cambiarlo. I cancelli sono aiCallsView (self or MANAGE MEMBER SECURITY, su una persona salvata che è una membro del team) e aiCallsEdit (la persona stessi), con una riga di tavolozza.

  26. · SecurityService

    Le sub-risorse del team (membri, diritti, ruoli) e il punto finale di ricalcolo (KamoCollab CP01 T11)

    E' il momento giusto. /diritti e /roles, e POST ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** Leggi sono aperto a qualsiasi sessione dell'org; scrive bisogno di CONFIGURE SYSTEM o di un aperto Dio finestra, controllato prima che la squadra venga controllata. Ogni PUT sostituisce la sua una lista richiesta tramite TeamWriter, gestisce TeamService. afterWrite e risponde all'elenco come ora legge con i dirittiRecalcolati: membri ricalcola chi si è unito e chi se ne è andato solo, diritti e ruoli del team membri. Il ricalcolo risponde {recalcolato: n}, il conteggio dei membri, e un fallimento è un 500 che non perde nulla.

  27. · kamo-internal

    SP96 la scheda vocale AI sul profilo, e la sezione VOICE della carta senza il pin TTS

    La camera Identity di un membro AI ottiene la sua scheda vocale: una riga per discorso modello può usare, nell'ordine li prova, con la voce che parla là ora e come è stato scelto, il modello usato prima, un modello senza voce del suo sesso, e una voce che cambia la prossima volta che parla, con Perche'? Un visualizzatore AIService permette di cambiarlo sceglie un'altra voce (una finestra di dialogo le voci che lo soddisfano) o il modello usato prima; entrambi salvano subito attraverso i nuovi relè BFF dei endpoint vocali membri di AIService. The carta legge le sue voci di nuovo quando il sesso salvato cambia. La sua porta, aiVoiceView, è la regola di lettura di AIService, e ha una riga di tavolozza. La sezione VOICE dell'editor charter è solo testo di stile: il raccoglitore TTS e il catalogo vocale charter (chiamata cliente e percorso BFF) sono andati, la sezione dice che la voce viene scelta sul profilo, e un elemento ancora portare un perno vocale è contrassegnato come condiviso-lib lo rifiuta.

  28. · kamo-internal

    SP96 la scheda vocale AI sul profilo, e la sezione VOICE del noleggio senza il pin TTS

    La camera Identity di un membro dell'AI guadagna la sua scheda vocale: una riga per discorso modello può usare, nell'ordine li prova, con la voce che parla là ora e come è stato scelto, il modello usato prima, un modello senza voce del suo sesso, e una voce che cambia la prossima volta che parla, con Perche'? Un visualizzatore AIService permette di cambiarlo sceglie un'altra voce (una finestra di dialogo le voci che lo soddisfano) o il modello usato prima; entrambi salvano subito attraverso i nuovi relè BFF dei endpoint vocali membri di AIService. The carta legge le sue voci di nuovo quando il sesso salvato cambia. La sua porta, aiVoiceView, è la regola di lettura di AIService, e ha una riga di tavolozza. La sezione VOICE dell'editor charter è solo testo di stile: il raccoglitore TTS e il catalogo vocale charter (chiamata cliente e percorso BFF) sono andati, la sezione dice che la voce viene scelta sul profilo, e un elemento ancora portare un perno vocale è contrassegnato come condiviso-lib lo rifiuta.

  29. · AIService

    Il brief guida lo scopo di una squadra con il nome della squadra (KamoCollab CP01 T17)

    Una linea TEAM PURPOSE ora legge "Come membro del team {title}: ", dopo il titolo di lavoro, come il RUOLO, DEPARTMENT e JOB TITLE conduce. VERSIONE soggiorni (D19): nessun breve ha ancora uno strato TEAM, quindi nulla ha bisogno di ricompilare.

  30. · SecurityService

    TeamController — elenco, creare, leggere, aggiornare ed eliminare (KamoCollab CP01 T10)

    GET|POST /api/security/teams e GET|PUT|DELETE /api/security/teams/{id} (spec §5.7). Ogni impugnatura risolve prima il chiamante (401 senza org); le letture sono aperte a qualsiasi sessione dell'org; le scritture hanno bisogno di CONFIGURE SYSTEM o di un finestra dio aperta (403 MISSING RIGHT con richiestoRight), controllato prima la squadra è cercata. Un percorso non UUID id, un id sconosciuto e un'altra squadra di org sono tutti 404 TEAM NOT FOUND. Una scrittura funziona nella transazione di TeamWriter, poi TeamService.afterWrite al di fuori di esso; creare e aggiornare la risposta {team (il dettaglio, con articoli charter), rightsRecalculated}, delete {deleted: true, rightsRecalculated}. Rifiuti mantenere il corpo di TeamErrors, noleggio rifiuta la forma di CharterErrors, e un vincolo che il database applica contro un salvataggio concomitante è un 409 che chiede una ricarica, non un 500.

Il tuo universo ti sta aspettando.

Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.

Gratis per sempre — nessuna carta di credito richiesta