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 iStorageTypeoch köer i egenskapenqueue_type;DBochAPIhar 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 tidigareoauth/basic/bearer/apikey/none, varav inget matchar körningen, så ingenAuthorization-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_typesparade 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. DBEncryptedConnectionochDBTrustCertificateä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/StorageUsrPwdpå 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>]__], inklusiveHIVEochHIVE_PADDEDsom separata val —month=8ochmonth=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. dateTimeFormathar 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 saknadetarget,sourceochmappingNumberoch 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 |
|---|---|
| Exporter | never går att välja som schemacykel för alla fyra exporttyper |
| Exporter | Exporter sparade med schemacykel "never" laddades med tom lista och gick sedan inte att spara |
| Fält | Egen datatyp via alternativet Other i datatypslistan, med automatisk upptäckt av sparade värden utanför standarden |
| Modeller | Apostrofer tillåts i modellbeskrivningar |
| Modeller | Models-sidan kraschar inte längre när listhämtningen misslyckas |
| Källfiler | targetNormalization normaliseras för både visning och API-efterlevnad; en bekräftelsedialog för avaktivering har lagts till |
| Träd | Inline-redigering av fält, avancerade filter, omordning med dra-och-släpp i skrivskyddat läge, och en vy för relationsredigering |
| Navigering | Omdesignad navigering med rubrikflikar per vy; varje sida har en egen webbläsartitel |
| UX | Vägledningsrutor i vyerna, tomma tillstånd med en åtgärdsknapp, och gemensamma komponenter för spinner, skelett, toast och fältfel |
| Tillgänglighet | Formulä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
- Node 24 krävs nu. Alla Dockerfile-steg kör
node:24-alpine. - 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. - Nya miljövariabler.
SIMPLEAPI_API_URL,DATAAPI_API_URL,API_USERNAME,API_PASSWORD,MOUNT_PATH,PDQ_CHAT_API_URL. - Installera med
npm ci.yarn.lockhar tagits bort. - Översiktssidans data kan vara upp till 15 minuter gammal som avsett. Tryck Refresh för aktuella siffror.
- Fältkategoriseringar går inte att ta bort från UI:t förrän backend stödjer
DELETEpå 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.