Gå til indholdet

Udvidelser

Udvidelsesbutikken (Admin → Udvidelser) installerer leverandørsignerede udvidelser, der tilføjer kundespecifikke funktioner — ekstra metamodel-indhold, integrationer, baggrundsjobs og endda nye sider — uden at ændre Turbo EA's kerne («clean core»-princippet).

Udvidelser installeres på to måder: med ét klik fra den indbyggede Butik (hvis instansen har internetadgang) eller ved at uploade filerne direkte — udvidelsen er en signeret .teax-pakke, og licensen er en signeret tekstfil, begge typisk sendt via e-mail. Den filbaserede fremgangsmåde kræver hverken butikskonto eller udgående forbindelse, så hele arbejdsgangen fungerer identisk på isolerede (air-gapped) installationer.

Siden har to faner: Butik gennemser leverandørens udvidelseskatalog med installation med ét klik, og Installerede håndterer licenser og installerer fra filer.

Udvidelser bygges og signeres af Turbo EA — de er ikke selvbyggede eller åbne for tredjeparter. Hvis du har brug for en funktion, der er skræddersyet til din organisation, kan vi bygge og licensere den til dig. Se Turbo EA-rådgivning.

Vejledninger til hver udvidelse

Hver udvidelse, der er offentliggjort i butikken, har sin egen brugervejledning — hvad den gør, hvordan den sættes op, og hvordan den bruges i det daglige. Se Udvidelser.

Sådan fungerer tilliden

To uafhængige kontroller beskytter din installation:

  1. Oprindelse (signatur). Hver pakke bærer en Ed25519-signatur fra leverandørens nøgle. Turbo EA verificerer den ved upload og igen ved hver backend-start. Usignerede, manipulerede eller tredjepartspakker afvises — en installeret udvidelse er garanteret præcis det, leverandøren har bygget.
  2. Aktivering (licens). En signeret licensfil oplister dine rettigheder — én pr. udvidelse, hver med sin egen udløbsdato. En installeret udvidelse kører kun, så længe der findes en gyldig rettighed. Licenser er bundet til din instans-ID — en licens udstedt til en anden instans afvises.

Gratis udvidelser

Nogle udvidelser er gratis og kræver slet ingen licens. De installeres og kører med det samme — der er ingen købstrin og ingen licensfil at indsætte. Gratis udvidelser er markeret med et Gratis-mærke på fanerne Butik og Installeret, og handlingerne Køb og Forny er skjult for dem. Signaturkontrollen gælder stadig præcis som for betalte udvidelser (en gratis udvidelse er stadig signeret af leverandøren), så oprindelsen er garanteret uanset hvad. Da de ikke kræver nogen rettighed, udløber gratis udvidelser aldrig og går aldrig i en henstandsperiode.

Din instans-ID

Hver installation genererer én gang en unik instans-ID (TEA-XXXX-XXXX-XXXX), som vises øverst på Admin → Udvidelser med en kopieringsknap. Det er din licensidentitet: Oplys den ved køb (den indbyggede Butik sender den automatisk; webbutikkens betaling beder om den), så hver udvidelse købt til denne instans — af enhver administrator, med enhver e-mail — ender i én samlet licens. Den identificerer kun din instans; den er aldrig en adgangsnøgle, så den kan trygt deles med din leverandør.

Udvidelser — fanen Installerede med instans-id'et

ID'et følger med en workspace-overførsel, så flytning til en ny vært holder licensen gyldig. Efter en fuld geninstallation får instansen et nyt ID — bed din leverandør om at genudstede licensen til det (et hurtigt «re-key» hos leverandøren).

Fanen Butik

Fanen Butik virker uden nogen konfiguration og viser leverandørens udgivne udvidelser som et gitter af kompakte felter — logo, navn, licensstatus og pris. Klik på et felt for at åbne et stort detaljevindue: på den ene side et galleri af skærmbilleder — bladr med pilene eller miniaturerne, og klik på et skærmbillede for at se det i fuld størrelse — og ved siden af den fulde beskrivelse, kategorimærkater, kilde- og licensangivelser og handlingerne. Når butikken udgiver udgivelsesnoter til udvidelsen, vises de to nyeste versioner under Nyheder med et link Fuld ændringslog til udvidelsens side i butikken. Udvidelser uden grafik får et genereret felt med deres initialer.

Udvidelser — fanen Butik

  • Køb åbner betalingssiden i en ny browserfane. Så snart betalingen er bekræftet, anvendes din licens automatisk (en kopi ankommer også pr. e-mail).
  • Nogle tilbud sælges på to planer: en månedlig og en årlig, hvor den årlige som regel er billigere. Detaljevinduet viser så Køb månedligt og Køb årligt i stedet for én knap; begge fører til den samme betaling.
  • Installer (eller Opdater, når en nyere version er udgivet) tjekker først din licens — hvis udvidelsen endnu ikke er licenseret, tilbyder en dialog at købe eller indsætte en licens og fortsætter derefter automatisk — og downloader pakken gennem præcis den samme signaturkontrol og prøvekørselsforhåndsvisning som en manuel upload. Udvidelser med demo viser et Se det i praksis-link. Knappen hedder kun Opdater for en udvidelse, du allerede har installeret; ellers er det et almindeligt Installer, der henter den udgivne version.

Kataloget er inddelt i fem sektioner — Strategi, planlægning & transformation, Governance & automatisering, Integrationer, Regulering og Tjenester — hver med sin egen overskrift, så du med det samme kan se, hvilken slags tilbud det er; alt, hvad kataloget ikke har klassificeret, vises under Andre til sidst. Inden for sektionerne fungerer tag-piller (gratis eller kommerciel, plus emner som integration) som filter: en filterbjælke vises over listen, klik på piller indsnævrer den (flere piller kombineres), sektioner uden match forsvinder, og Alle nulstiller visningen.

Et tjenestetilbud — noget, der ikke installeres, fx et supportabonnement — sælges og licenseres som en udvidelse, men uden bundle. Dets flise og detaljevindue tilbyder kun Køb, viser ingen version og siger det ligeud; når købet er bekræftet, vises den samme licenschip (Fornyes den …) på flisen, og din bekræftelsesmail forklarer, hvordan du bruger det, du har købt.

Fanen Butik er skrivebeskyttet og anonym: ingen konto, intet token, og intet om din instans sendes nogen steder hen — kun leverandørens offentlige katalog læses. Isolerede instanser behøver ingen konfiguration — fanen viser i stedet blot et venligt hint — og bruger det filbaserede forløb nedenfor; leverandørens butikswebsted tilbyder de samme køb og downloads fra enhver browser med internetadgang. Hvis noget mellem din instans og butikken blokerer anmodningen — en proxy, en firewall eller botbeskyttelse foran butikken — siger fanen det og nævner den HTTP-status, den fik tilbage, så en blokeret instans aldrig forveksles med en isoleret.

Instansen tjekker desuden kataloget én gang om dagen og fortæller, hvad der er ændret, så en ny udvidelse — eller en sikkerhedsrettelse til en, du allerede kører — ikke skal vente på, at nogen tilfældigvis åbner denne side. Administratorer (alle, hvis rolle giver admin.manage_extensions) får en notifikation i klokken, når en ny udvidelse udgives i butikken, og en anden, når en installeret udvidelse har en nyere version. Hver ændring annonceres én gang, og en travl udgivelsesdag ankommer som én notifikation pr. type frem for én pr. udvidelse. Intet hentes eller installeres — notifikationen bringer dig blot hertil. Det daglige tjek kan slås helt fra under Admin → Indstillinger → Opdateringsnotifikationer.

Fanen viser også, hvornår butikken sidst blev læst, og en Tjek nu-knap, der kører tjekket med det samme og rapporterer, hvad det fandt — så du kan bekræfte, at det daglige tjek virker, uden at vente et døgn. Mislykkedes et tjek, vises årsagen her i stedet for at forblive tavs.

Prøveperioder

Nogle betalte udvidelser tilbyder en gratis 30-dages prøveperiode — kig efter knappen Start 30-dages prøveperiode på Butik-fanen (eller prøvemuligheden på butikkens websted). At starte en prøveperiode fungerer som et køb uden betaling: der kræves intet kreditkort, din licens opdateres automatisk (en kopi ankommer også via e-mail til isolerede installationer), og udvidelsen kører med fuld funktionalitet i 30 dage.

  • Hver Turbo EA-instans kan prøve en given udvidelse én gang.
  • En prøveperiode slutter præcis på slutdatoen — der er ingen henstandsperiode. Udvidelsen holder derefter op med at køre, indtil du abonnerer; dine data slettes aldrig, og alt vender tilbage, i det øjeblik en abonnementslicens anvendes.
  • Fanen «Installerede» viser prøverettigheder som Prøveperiode indtil ….
  • Prøveperioder slutter af sig selv — der er intet at opsige, og der opkræves aldrig noget.

Installer en udvidelse

  1. Hvis du ikke allerede har gjort det, skal du først anvende din licens (se nedenfor).
  2. Åbn Admin → Udvidelser, tryk på Installer fra fil… over kataloget på fanen Butik eller over listen på fanen Installerede (og inde i den besked, der vises, når butikken ikke kan nås), og upload den .teax-fil, du har modtaget.
  3. Turbo EA verificerer signaturen og åbner en installationsdialog med en forhåndsvisning: for indholdsbærende udvidelser er det en prøvekørsel af hver korttype, tag-gruppe, kort og relation, som udvidelsen ville oprette eller opdatere — intet skrives endnu.
  4. Gennemgå forhåndsvisningen — den ruller inde i dialogen — og tryk på Installer udvidelse nederst i dialogen, hvor knappen bliver stående, uanset hvor lang forhåndsvisningen er.
  5. Hvis udvidelsen indeholder backend-kode, beder et banner dig om at genstarte backend-containeren (docker compose restart backend). Indholds- og UI-udvidelser er aktive med det samme — brugerne ser den nye brugerflade ved næste sideindlæsning.

Det er sikkert at uploade den samme pakke igen — forhåndsvisningen viser alt som «sprunget over», og anvendelse ændrer intet.

Opdatering af en udvidelse

Når butikken udgiver en nyere version af en installeret udvidelse, viser fanen Installerede en chip Opdater til X ved siden af versionen (og knappen på fanen Butik bliver til Opdater). Et klik kontrollerer signaturen og henter bundtet og viser dig derefter hvad versionen indeholder — udvidelsens egne udgivelsesnoter med et link Fuld ændringslog til resten — med Installér og Annullér. Der skrives intet, før du trykker Installér; Annullér kasserer det hentede. En førstegangsinstallation har ingen tidligere version at sammenligne med og anvendes stadig med ét klik. Mens en installation eller opdatering kører, viser knappen (eller chippen) en indikator og forbliver deaktiveret, indtil den er færdig, og installationsdialogen viser forløbet, uanset hvor du startede det fra. To sikkerhedsforanstaltninger gælder:

  • Opdatering af en udvidelse, du bevidst har deaktiveret, holder den deaktiveret — den nye version lander på disken, men dens indhold forbliver skjult, og intet kører, før du aktiverer den igen.
  • Installation af en pakke, der er ældre end den installerede version, kræver først en udtrykkelig bekræftelse: en nedgradering forstår muligvis ikke data skrevet af den nyere version. Intet slettes i nogen af tilfældene.

Når opdateringen er anvendt, får alle, der kan bruge udvidelsen, en Udvidelsen er opdateret-notifikation i klokken og kan åbne de samme udgivelsesnoter derfra. Den er slået til som standard og sendes aldrig på e-mail; hver enkelt kan slå den fra under sine notifikationsindstillinger.

Licenser og fornyelse

Anvend en licens via Indtast licens… under fanen Installerede (indsæt teksten eller upload filen) — knappen vises også på hver udvidelsesrække, der mangler en. Siden viser derefter licenstageren og en chip pr. rettighed med udløbsdato.

Din instans har kun én licens ad gangen — at anvende en ny erstatter den forrige. Licenser udstedt via Store indeholder altid alle køb foretaget for din instans, så udskiftning er sikker. Hvis du også har manuelt udstedte licenser, så bed din leverandør om én samlet licens i stedet for at anvende filer pr. udvidelse; hvis en anvendt licens ville fjerne rettigheder, som den nuværende stadig dækker, viser Turbo EA dem og beder først om bekræftelse (der slettes under ingen omstændigheder data).

Når en rettighed passerer sin udløbsdato, starter en henstandsperiode (30 dage som standard): alt fungerer fortsat, og administratorer ser et advarselsbanner. Efter henstanden bliver udvidelsen blødt deaktiveret — dens sider forsvinder, dens API afviser forespørgsler, og dens baggrundsjobs pauser. Der slettes aldrig data. Anvendelse af en fornyet licensfil gendanner alt med det samme, uden genstart.

Licenser købt via Butikken fornyer sig selv på forbundne instanser: efter hver gennemført betaling henter din instans automatisk den forlængede licens — intet at indsætte. På en isoleret installation er fornyelse: indsæt den opdaterede licensfil fra fornyelses-e-mailen (eller anmod leverandøren om en) — intet andet.

Status for automatisk fornyelse og opsigelse

Hver rettigheds-chip fortæller, hvad der sker på datoen: Fornyes den {dato} for et aktivt abonnement eller Udløber den {dato} — fornyes ikke efter en opsigelse. Oplysningen kommer fra selve den signerede licens og er derfor også korrekt på isolerede installationer — licensfilen, der sendes pr. e-mail efter enhver abonnementsændring, bærer den opdaterede status; indsæt den, og chippen er aktuel.

For at se fornyelsesdatoen, opsige eller genoprette automatisk fornyelse, ændre betalingsmetode eller hente fakturaer skal du bruge Administrér abonnement ved siden af licenstagerens navn (vises for licenser købt i Butikken). Knappen åbner din faktureringsportal i en ny fane — ingen konto nødvendig. På en isoleret installation kan knappen ikke nå butikken; brug i stedet linket Administrér abonnement i enhver licens-e-mail (kun din browser behøver internetadgang, ikke din Turbo EA-installation).

En opsigelse slukker aldrig for noget med det samme: Udvidelsen fungerer indtil udgangen af den betalte periode, hvorefter det normale forløb med henstandsperiode + blød deaktivering gælder. Dine data slettes aldrig, og et nyt abonnement genopretter alt.

Aktivér, deaktivér og afinstaller

  • Kontakten Aktiveret deaktiverer en udvidelse blødt med det samme (ingen genstart) og kan slås til igen når som helst. For indholdspakker skjuler dette deres korttyper fra metamodellen — kort bliver, hvor de er.
  • Afinstaller fjerner udvidelsens filer og skjuler dens korttyper fra metamodellen. Kort og udvidelsens egne tabeller bevares bevidst, og alt — typer inklusive — dukker op igen, hvis du geninstallerer.

Tilladelser

Hele siden og alle dens API-ruter er beskyttet af den dedikerede tilladelse admin.manage_extensions (tildelt den indbyggede Admin-rolle). Udvidelser kan definere deres egne tilladelsesnøgler (ext.<navn>.…), som vises under Admin → Brugere & roller, når udvidelsen er indlæst.

Avancerede feltfunktioner

Nogle udvidelser låser op for avancerede måder at beskrive dine data på, som kernen ikke tilbyder af sig selv:

  • Felthjælpetekst — en sammenklappelig vejledning under et felt under dataindtastning, så en formular forklarer sig selv.
  • Brugerdefinerede felttyper — nye felttyper ud over det indbyggede sæt (for eksempel en konfigurerbar bedømmelse fra 1–5 eller 0–10).

Disse valgmuligheder vises i metamodellens felteditor kun, mens den udvidelse, der leverer dem, er installeret og licenseret. Hvis en sådan udvidelse senere deaktiveres, eller dens licens udløber, vises de værdier, du allerede har indtastet, fortsat som almindelig skrivebeskyttet tekst — intet tømmes eller slettes — og redigeringsmulighederne forsvinder blot, indtil udvidelsen er aktiv igen.

Dataadgangs-grants

De fleste udvidelser arbejder kun med deres egne data. En udvidelse, der integrerer med kernedata — for eksempel en connector, der synkroniserer todos med et eksternt opgavesystem som Jira eller MS Planner (#921) — skal deklarere grants i sit signerede manifest:

  • core.todos.read / core.todos.write — læs eller ændr todos gennem udvidelses-SDK'et. Skriveadgang omfatter læseadgang. På system-todos (såsom underskriftsanmodninger) kan en synkroniseringsudvidelse kun sætte den eksterne reference, der vises som en chip — den kan aldrig fuldføre, redigere, omfordele eller slette dem, og todos, der ejes af en anden udvidelse, forbliver urørlige.
  • core.events.todo — modtag hændelser om todo-ændringer, så en connector reagerer med det samme i stedet for at vente på næste polling-cyklus.
  • core.users.read — slå brugere op (kun navn, e-mail og aktiv-status), så en connector kan matche ansvarlige med konti i det eksterne værktøj. Ingen data om roller, login eller præferencer eksponeres, og udvidelser kan aldrig ændre brugere.
  • core.cards.read — læse kort, relationer og metamodellen, fx så en connector kan matche jeres applikationer med poster i et eksternt system. Arkiverede kort forbliver ude af syne.
  • core.cards.write — oprette, opdatere eller arkivere kort og tilføje relationer, med præcis den validering appens egen editor anvender. Opdateringer fletter feltværdier i stedet for at erstatte dem, så en udvidelse aldrig kan slette data, den ikke administrerer, og der findes ingen permanent sletning — arkivering, med sit gendannelsesvindue, er den eneste fjernelse en udvidelse kan udføre.
  • core.events.card — modtage ændringshændelser for kort og relationer, så en connector reagerer på ændringer i inventaret med det samme i stedet for ved næste afstemningscyklus.
  • core.notifications.channel — levere de notifikationer, du slår til, på en kanal, der tilhører udvidelsen selv, for eksempel en chatbesked. Udvidelsen modtager en notifikations titel, besked og link samt dit bruger-id; den modtager ikke din e-mailadresse, medmindre den også erklærer core.users.read, og den modtager aldrig en type, du ikke har slået til for den. Notifikationer, der kun bliver i klokken, sendes aldrig til en udvidelseskanal. Hver udvidelseskanal starter slået fra for alle notifikationstyper — også de administrative meddelelser (ny udvidelse, opdatering af udvidelse, Turbo EA-opdatering): åbn dine notifikationsindstillinger fra klokken, og slå kanalens kolonne til for de typer, du vil have der. En meddelelse, der allerede blev vist i klokken, før kanalen blev slået til, sendes ikke igen.
  • core.adr.read — læse arkitekturbeslutninger (reference, titel, status, tilknyttede kort og udvidelsens egne data på dem).
  • core.adr.write — oprette en arkitekturbeslutning som kladde og knytte den til aktive kort, for eksempel en udvidelse der registrerer resultatet af en analyse som en beslutning til gennemsyn. Skrivning indebærer læsning. En udvidelse kan aldrig underskrive en beslutning, sende den til gennemsyn eller ændre dens status — det bliver hos jeres brugere — og kan kun gemme data på posten under sine egne nøgler ext.<key>.*. Hver oprettelse registreres i Admin → Revisionslog som en ext:<key>-batch.
  • core.risks.read — læse risikoregistret (reference, titel, kategori, niveau, status, ejer, tilknyttede kort).
  • core.risks.write — oprette en risiko og knytte den til kort, for eksempel en regel der registrerer en risiko, når en applikation uden ejer overskrider en omkostningsgrænse. Skrivning indebærer læsning. En risiko oprettet på denne måde viser Udvidelse som kilde i registret, får sin reference fra samme sekvens som alle andre, og dens ejer modtager den sædvanlige opgave og notifikation. En udvidelse kan senere ændre titel, beskrivelse, ejer og måldato for de risici, den selv oprettede — aldrig andres, og aldrig en risikos status: at flytte den gennem forløbet, acceptere og lukke den bliver hos jeres brugere.
  • core.notifications.send — sende en notifikation til navngivne personer, for eksempel »en regel, du har sat op, blev netop udløst«. Den ankommer som typen Udvidelsesbesked eller som en type, udvidelsen selv erklærer, og som så får sin egen række i hver persons notifikationsindstillinger (i appen slået til, e-mail slået fra som standard) — i begge tilfælde bestemmer hver person selv, om den når klokken, indbakken eller en udvidelseskanal, og kan slå den fra. Nogle af disse notifikationer åbner deres detaljer i appen ved klik og tilbyder kun det relaterede kort og udvidelsens egen side til dem, der må åbne dem. Linket i sådan en notifikation kan kun pege ind i Turbo EA.
  • core.stakeholders.write — tildele eller fjerne interessentroller på kort med præcis de roller, korttypen definerer. Det er en særskilt grant fra core.cards.write, fordi en interessentrolle giver personen rettigheder på kortet.
  • core.surveys.read — læse en undersøgelses navn, status og svarandel.
  • core.surveys.write — sende en datavedligeholdelsesundersøgelse til interessenterne på et sæt kort, for eksempel en planlagt regel der beder ejerne af hver forretningskritisk applikation under datakvalitetsmålet om at udfylde deres kort — én anmodning pr. person i stedet for én opgave pr. kort. Skrivning indebærer læsning. Undersøgelsen vises i Admin → Undersøgelser uden ophavsmand, dens felter er præcis dem, korttypen definerer, og hver person får den sædvanlige undersøgelsesnotifikation. En udvidelse kan aldrig lukke en undersøgelse eller anvende dens svar — det bliver hos jer — og en tilbagerulning af den kørsel, der sendte den (Admin → Revisionslog), lukker undersøgelsen og trækker de anmodninger tilbage, som ingen endnu havde besvaret.

Grants er en del af det leverandørsignerede bundle: de fastlægges ved pakningen og er synlige før installation. De gælder kun, mens udvidelsen er installeret, aktiveret og licenseret — deaktivering eller en udløbet licens tilbagekalder adgangen med det samme, uden genstart. Enhver ændring foretaget af en udvidelse registreres i Admin → Auditlog under oprindelsen Udvidelse, og en todo, der spejles fra et eksternt system, viser en chip med link til det eksterne element.

Hver ændring en udvidelse foretager, vises i Admin → Auditlog som en ext:<nøgle>-batch med felt-for-felt-forskelle og kan rulles tilbage derfra som enhver anden batch. Operatører har det sidste ord: miljøvariablen EXTENSION_WRITES_ENABLED=false sætter øjeblikkeligt alle udvidelsers skrivninger på pause (læsninger fortsætter, ingen genstart), og EXTENSION_MAX_WRITES_PER_BATCH / EXTENSION_MAX_BATCHES_PER_MINUTE begrænser, hvor meget en enkelt udvidelse kan ændre pr. batch og pr. minut.

Hvor udvidelsessider vises

Udvidelsessider vises i navigationen, når udvidelsen er installeret og licenseret — normalt som deres eget menupunkt på øverste niveau, selvom nogle placeres inde i en kernemenu sammen med de indbyggede punkter: rapporter under Rapporter, og sider om governance, risiko eller compliance under GRC. En grupperet side falder tilbage til et menupunkt på øverste niveau, når dens menu ikke er tilgængelig — modulet er slået fra, eller du mangler tilladelsen — så den forsvinder aldrig fra navigationen.