Skip to main content

Config UI – v3 Versionsnoteringar

Komponent: Config UI (släppt under namnet User Interface Toolkit)

En stor version. Config UI har flyttats till en aktuell plattform, målats om i Simplitics egen färgpalett och fått en ny visuell mappningsupplevelse, en startsida med översikt, och en modell per källsystem av vad INGEST-agenten faktiskt läser. Migreringen bort från backend-API v2 är också slutförd.

Höjdpunkter​

INGEST beskrivs nu per operator, inte per anslutningstyp​

Anslutnings- och exportformulären visade tidigare unionen av alla fält för en anslutningstyp, vilket inte sa något om den källa du faktiskt konfigurerade. Båda sidorna drivs nu av ett register över operatorklasser — den sourcetype agenten kör — så att varje formulär bara frågar efter de fält operatorn läser, markerar de som krävs och flaggar de som ignoreras i stället för att dölja dem.

  • Operatorväljare på både Connections- och Exports-sidan. FILE-anslutningar lagrar valet i StorageType och köer i egenskapen queue_type; DB och API har ingen plats i kontraktet för det, så valet detekteras från porten eller API-URL:en och kommer ihåg per webbläsare — och väljaren berättar vilket av de tre det var i stället för att presentera en gissning som fakta.
  • Konfigurationsmallar per operator, härledda från anslutningar som faktiskt körs — portar, avgränsare, grant-typer, kontrollheadrar, scope. Att tillämpa en mall fyller bara tomma fält; "återställ till dessa värden" är en separat åtgärd. En mall bär aldrig en autentiseringsuppgift och hittar aldrig på ett värde, och den listar vad den medvetet lämnat till dig.
  • Meddelandeköer (AWS SQS, Azure Service Bus, Redis) går att konfigurera som CUSTOM-anslutningar, med koordinater, batchgränser och överstyrningar per export.
  • Filsystem (lokalt, S3, Azure Data Lake Gen2, SFTP) fick hela sin uppsättning fält, egenskaper och filtervillkor, inklusive DuckDB-läsarens inställningar och filurvalsfönstret.
  • API:ets autentiseringsmetod använder nu de värden agenten jämför mot — OAuth 2.0, Token, Basic. Listan erbjöd tidigare oauth / basic / bearer / apikey / none, varav inget matchar körningen, så ingen Authorization-header byggdes någonsin för en anslutning som sparats via den. Anslutningar med ett gammalt värde flaggas och skrivs om vid sparning.
  • Autentiseringsegenskaper är villkorligt obligatoriska, utifrån autentiseringsmetod och grant-typ snarare än operator, och att välja metod skriver in de nycklar konfigurationen behöver i egenskapslistan — ett formulär som synligt bad om grant_type sparade tidigare en payload utan den.
  • Leverantörsvägledning erbjuds, men tvingas aldrig. Graphs /.default-scope, Talkdesks scope och Heartpaces statiska token visas med sitt skäl och en knapp som tillämpar dem. När token-URL:en slutar tillhöra leverantören — signaturen för en gateway framför källan — drar förslagen tillbaka sig själva och UI:t säger varför.
  • DBEncryptedConnection och DBTrustCertificate är vanliga anslutningsfält för databaser. De modellerades tidigare som anslutningsegenskaper för SQL Server, vilket aldrig kunde sparas: DB-kontraktet har ingen egenskapslista.

Autentiseringsuppgifter återanvänds aldrig​

API:et krypterar varje värde det tar emot, så att posta tillbaka en lagrad uppgift krypterar den en andra gång och anslutningen slutar fungera vid nästa export utan att UI:t visar varför.

  • Lagrade lösenord renderas aldrig; fälten är hårdkopplade till tomma och den laddade anslutningen rensas från DBUsrPwd / StorageUsrPwd på vägen in.
  • Krypterade värden i en egenskapslista rensas vid laddning, och de nycklar som rensades rapporteras så att du vet vad du behöver skriva in på nytt. Detektionen sker på värdet, så en hemlighet i klartext lämnas orörd.
  • JSON-förhandsgranskningen bär alltid lösenordsnyckeln så att payloaden går att posta, men aldrig det lagrade värdet. En nedladdad förhandsgranskning innehåller därför en skarp uppgift så snart en har skrivits in.

Dynamiska tidsvärden​

Exportdefinitioner bär värden som körningen löser upp vid exekvering — filnamnssuffixet, filsökvägen till en partitionerad källa, ändarna på ett filurvalsfönster, förfrågningsparametrar, where-satser.

  • En väljare som frågar vilket ögonblick och hur långt bakåt, i stället för att be dig stava ett token, och som visar både det sammansatta värdet och en läsbar tolkning.
  • Hela grammatiken [__<TIME>[_MINUS_<N>_<UNIT>][_AS_<FORMAT>]__], inklusive HIVE och HIVE_PADDED som separata val — month=8 och month=08 är inte utbytbara, och vilket som fungerar beror på hur källan skrev sina partitioner.
  • Formatärvning visas som ett eget alternativ, och namnger det format ett token utan _AS_ kommer att ärva.
  • Äldre stavningar flaggas, aldrig omskrivna i tysthet — [__LAST_N_DAYS__] och [__LASTEXECUTION__], där den senare är ett namn grammatiken inte listar, så exporter som bär det kan aldrig ha lösts upp.
  • dateTimeFormat har nu ett formulär. Det fanns i kontraktet från början utan att något renderade det.
  • Egendefinierade parametrar går att växla mellan text, tal och datum och tid, där typen härleds från värdet.

Visuell mappning​

  • Ny diagramvy för mappningar byggd på React Flow, numera standardvy, med mappningar som skapas och tas bort genom att dra, grupperade noder, markering vid hovring, sökning, filtrering på ämnesområde, en växlare för att bara visa mappade fält, och bildexport.
  • Mappningslinjer som överlägg i trädvyerna, med brödsmulenavigering som binder ihop källa och mål.
  • Dialogen för nyckelmappning löser problemet på plats. Den listade tidigare dina mappningar, konstaterade en regel och erbjöd bara en destruktiv knapp. Nu namnger den vad som saknas, förklarar vad en affärsnyckel är och låter dig välja källfältet och trycka Map and save. Borttagning har flyttats ned till en textlänk som namnger sin konsekvens och sitt antal.
  • Föräldralösa mappningar visas — mappningar vars målattribut eller målmodell döpts om eller tagits bort var dolda i trädet och gick varken att se eller städa bort. En banner listar dem med en Remove-knapp.
  • Mappningsegenskaper sparas. Trädnoden bar bara {fileName, modelName}, så den skickade payloaden saknade target, source och mappingNumber och sparningen hoppades över i tysthet — ingen förfrågan, inget fel, ingen förändring.
  • Filter, valfria beräkningar, sorteringsordning och sorteringsriktning går att redigera per attribut i UI:t. De behövde tidigare tillämpas via API:et eller en källkodsvy.

Översiktssida​

  • Ny startsida med antal system, källfiler, fält, mappningar och modeller; en lineage-graf från början till slut byggd på live-data; en arkitekturöversikt; och en detaljpanel som navigerar till en källa med rätt system förvalt.
  • Widgetar misslyckas synligt i stället för att hänga — en misslyckad toppnivåhämtning lämnade tidigare korten pulserande i all evighet.

Ytterligare uppgifter​

  • Ny sida för Additional Tasks som hanterar för- och efterbearbetningsuppgifter, med sidopanel, validering och flerval för beroenden.

Inställningar​

  • Uppdelade i fokuserade sektioner: Data Lake settings, Data Warehouse settings och Field Classifications, med hopfällbar sidopanel och förhandsgranskning.
  • Postgres tillagt som dataplattformsalternativ.

Simplitics färgpalett​

Appen renderas i Simplitics egna färger, och varje färg bär en betydelse: turkos för mappat/anslutet/lyckat, lila för relationer, bärnsten för nycklar, zink för neutralt och avstängt, rött reserverat för fel och destruktiva åtgärder. Skalan grönt/bärnsten/rött behålls medvetet — ett trafikljus läses bättre än varumärkestoner.

Prestanda​

Varje endpoint bakom dessa vyer tar 8–15 sekunder, och den här versionen angriper väntetiderna som staplas ovanpå det.

  • Översiktssidan gör inga ocachade läsningar, och dess data hålls i 15 minuter och cachas i 30, med en Refresh-knapp som utväg.
  • Mappningsvyn hämtar parallellt — att öppna en källfil gick från ungefär fem sekventiella väntetider till två.
  • Källträdet ritas utan att vänta på målmodellerna, vilket ungefär halverar väntetiden, med en skelettvy som namnger vad som fortfarande saknas.
  • Modeller laddas inte längre två gånger vid montering, och "systemet har inga exporter" behandlas inte längre som ett fel.

Sparning, återkoppling och dialoger​

  • En regel för sparbekräftelser. Fel ligger kvar tills de hanterats; enkel bekräftelse är övergående och placeras vid åtgärden; en bekräftelse med ett nästa steg ligger kvar; en toast används bara för återkoppling som överlever vyn som skapade den.
  • Varje sparknapp visar att den arbetar och blockerar en andra inskickning.
  • Sparning är avstängd när det inte finns något att spara, och knappen säger varför.
  • Osparat arbete varnar innan fliken stängs.
  • Varje dialog stängs med Escape och klick utanför, båda avstängda medan en åtgärd pågår.
  • Webbläsarens confirm() / alert() ersatta av en bekräftelsedialog i appen.
  • Bekräftelse visas bara när sparningen verkligen lyckades — import, modellsparning och relationssparning rapporterade tidigare framgång även på felvägar.

Övriga ändringar​

OmrådeÄndring
Exporternever går att välja som schemacykel för alla fyra exporttyper
ExporterExporter sparade med schemacykel "never" laddades med tom lista och gick sedan inte att spara
FältEgen datatyp via alternativet Other i datatypslistan, med automatisk upptäckt av sparade värden utanför standarden
ModellerApostrofer tillåts i modellbeskrivningar
ModellerModels-sidan kraschar inte längre när listhämtningen misslyckas
KällfilertargetNormalization normaliseras för både visning och API-efterlevnad; en bekräftelsedialog för avaktivering har lagts till
TrädInline-redigering av fält, avancerade filter, omordning med dra-och-släpp i skrivskyddat läge, och en vy för relationsredigering
NavigeringOmdesignad navigering med rubrikflikar per vy; varje sida har en egen webbläsartitel
UXVägledningsrutor i vyerna, tomma tillstånd med en åtgärdsknapp, och gemensamma komponenter för spinner, skelett, toast och fältfel
TillgänglighetFormuläretiketter kopplade till sina fält; inaktuella valideringsfel rensas; bekräftelser döljs automatiskt efter 5 s medan fel ligger kvar; knappar med enbart ikon använder riktiga tooltips

Uppgraderingsnoteringar​

  1. Node 24 krävs nu. Alla Dockerfile-steg kör node:24-alpine.
  2. Backend måste tillhandahålla /api/v3/*. Alla proxyrutter pekar nu på v3; en backend som fortfarande kör v2 bryter system, källfiler, modellrelationer, extra processorer och strängkryptering.
  3. Nya miljövariabler. SIMPLEAPI_API_URL, DATAAPI_API_URL, API_USERNAME, API_PASSWORD, MOUNT_PATH, PDQ_CHAT_API_URL.
  4. Installera med npm ci. yarn.lock har tagits bort.
  5. Översiktssidans data kan vara upp till 15 minuter gammal som avsett. Tryck Refresh för aktuella siffror.
  6. Fältkategoriseringar går inte att ta bort från UI:t förrän backend stödjer DELETE på den endpointen.

Kända begränsningar​

  • Chattwidgeten i appen levereras men går inte att nå från UI:t.
  • Batchredigering / markeringsläge i trädvyn är implementerat men tillfälligt avstängt.
  • Navigering inne i appen skyddas inte mot osparade ändringar — bara stängning och omladdning av fliken gör det.
  • Avstängd sparning när inget ändrats gäller bara dataimport och inställningar.
  • System utan exporter svarar fortfarande HTTP 400 vid kall laddning; klienten hanterar det, men endpointen borde svara 200 med en tom lista.