You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
What reads an item, as tables: on a unified-api source's page the endpoints whose output it is part of (marked where it limits the hosts) and the views it is a member of; on a unified-gitops project's page the webhooks hearing it; on a unified-gitops webhook's page the projects it hears, beside its applications. History stays the last table on every page that has one.
A History panel on a unified-api source's page (its last syncs: why and by whom, what each covered, the hosts and groups it brought or why it failed, how long it took) and on a project's page in both apps (its last pulls: why and by whom, the commit each moved the checkout from and to, with links), from the new history fields: unified-api 0.37.0 and unified-gitops 0.4.0; an older instance shows none. One RunHistory table in @opusprojects/unified-ui.
An Order menu ends every list page's toolbar (both apps): A to Z and Z to A, A to Z the default; on Sources also Fresh to Stale and Stale to Fresh, with worst first (Stale to Fresh) staying its default. The choice is remembered per list in the browser; arrow keys, Enter and Escape work, and on a narrow screen it opens leftwards when it would not fit. useListFilter takes the card's name, the orders offered and a key, ListPage a name, and ListToolbar its orders (orderOptions(), or orderOptions([good, bad]) for the health ones).
Vaults as credentials (unified-api 0.37.0, unified-gitops 0.4.0): a Vault's page says which variable holds its token (or Kubernetes auth) and lists the credentials read from it, with their vault path and state; a credential read from a Vault links to it beside its vault path; a Vault read from by other credentials counts as used.
Changed
A project's card (both apps) always has its Credentials row, saying None for a public repository cloned without one, so every card has the same rows; the row and the project page's fact say Credentials, as the item's credentials: key now does.
unified-api project page: its Endpoints are a table (Endpoint, Output, Sources ready, State), like its Sources and Connectors, in place of a list of links.
unified-api credential page: its Projects are a table (Project, Last pull, State), as its Sources above them and a credential's projects in unified-gitops, in place of a list of links.
Cron schedules read in words, as intervals do: "daily at 04:15 UTC", "every 4h", "every 2h, at :15", "Mon–Fri at 06:00 UTC", "yearly on 1 Jan at 00:00 UTC", the expression on hover (formatSchedule and Schedule in @opusprojects/unified-ui); on a source's card and page and a project's, where a project on a schedule showed nothing on its card. One too irregular to say plainly is shown as written.
unified-api connector page: its Sources table is the one every other page lists sources with (Source, Hosts, Groups, Data from, State), in place of its own (Source, Timeout, State). A source's own timeout shows on its page.
Configuration, both apps: the Secrets card lists one row per Vault (its name, linking to its page, its address and its cache), in place of the secret cache, the single Vault's settings and the credentials count; with no Vault it says every secret is read from environment variables or files.
A Vault's credential page (both apps) shows its Address, Mount, Login (the token's variable, or its Kubernetes role), Timeout and Cache, and reads from "This is a Vault"; Login replaces the separate Token from. Its card reads from its address, where it said "Vault:" with nothing after it.
Fixed
unified-api Topology: every card takes one width. Side by side they were matched to the widest only when that fit, and otherwise kept their own widths (one edge narrower than the rest); now the room is shared evenly instead, while each share is at least a card's 360px, what a card holds adapting (fewer chips before "+N more"). Stacked, they stretched to what each level's indent left; now they are one width too.
A project's Last attempt and Last success (its page and card, both apps) restart when it is pulled, as Data from does after a Sync: they were counted on from the first answer whenever the next one reported the same age, so a Pull seemed not to reset them. The same for an application's Last check (card and tables), the projects on a credential's page, a source's Last success and the last cache save on Configuration.
Tables size each column from its content's real width, rounded up, and again when that content or the fonts change: a state pill ("Not synced yet" on a connector's sources) could overhang its column by a fraction of a pixel and give the table a horizontal scrollbar on a screen with classic scrollbars.
unified-api source page: between about 860 and 980px wide the hosts list kept its full width and squeezed the selected host beside it to a sliver, its search and switches overflowing the card. The two now stack until both have room (measured against the page's column, not the window), and side by side the hosts give way first.
Metrics: the API routes table scrolled sideways at 1280px when a route was long. A table too narrow for its columns now cuts its widest text column short with an ellipsis, the whole value on hover.
Overview (both apps): its first row of cards filled in one by one as each list arrived, the row reflowing each time. Each card now holds its place as a placeholder of its size while its list loads (AreaCardSkeleton); a restricted key gets none for the lists it may not read.
Counts group thousands with a comma everywhere in both apps, 1,023 rather than 1023: cards, facts, tables, health summaries, the overview, pagination, "+N more", run and sync messages. They followed the browser's language, which in Spanish wrote 1023 and 10.000; one formatCount (and countOf, "1,023 hosts") in @opusprojects/unified-ui now formats them all the same way.
Cron schedules with a named form the words cannot say are shown as written: FRI#2, FRIL and MON-FRI/2 read as "every Fri" or "every Mon", names being matched on their first three letters; and 0,7 read "Sun and Sun".
Configuration, Secrets card (both apps): config.yaml's deprecated secrets.cache_ttl_seconds, a cache over every credential, is a row of its own, and the card no longer says env and file credentials are read fresh on every use while it is set; the deprecated config.yaml Vault shows that cache, or 60s without it, in place of "–". A failed credentials request shows its error rather than "Loading…" forever.
The Order menu's button no longer swallows Home, End, ArrowUp and Escape while the menu is closed, so they scroll the page again; ArrowDown still opens it.
Counts in "used by" lines (credential pages) and in a connector's script summary ("Shell script, 1,023 lines") group thousands and take the singular for one, as every other count does. formatCount and countOf now live in @opusprojects/unified-client, re-exported by @opusprojects/unified-ui as before.
unified-api source page: at a fractional width just under 676px the hosts list and the selected host stayed side by side and overflowed by half a pixel; they now stack below 676px.
Tables no longer scroll sideways for a long cell: a column with a hover (an error, what a sync covered, a path, an address) gives way like the name, cut short with the whole value on hover, so a 2,000-character sync error no longer made History 11,334px wide in a 934px panel; until measured, and on a screen too narrow for the other columns, such a cell still clips rather than widening the table. History's Covered names at most two hosts ("Hosts a, b +38 more"), every one on hover.
Table columns no longer shift as an age ticks ("9s ago", "10s ago"): the columns are measured again only when a cell outgrows the room its column has, not whenever its text changes.
History's When counts from the run's age_seconds (unified-api 0.37.0, unified-gitops 0.4.0), measured by the server as the facts above it are, rather than from the browser's clock; an older instance still counts from started_at.
Configuration, Secrets card: config.yaml's Vault and its cache over every credential are called deprecated only when the instance says so (settings.secrets.deprecated); on unified-api 0.36 or unified-gitops 0.3, where that block is the normal setup, they read "config.yaml" and "All credentials (config.yaml)". A Vault credential shows the cache the API reports as in effect.
unified-gitops Metrics: an application name cut short in Requests by application or Check health by application has its whole name on hover; a metrics table only ever cuts a column that has a hover, never a pill.
Metrics tables size their columns from each cell's real width rounded up and the panel's rounded down, and again when a font arrives late, so a cell no longer overhangs its column by a fraction of a pixel.
Credential pages (both apps): the hints say a project names its credential with credentials, as the item now does, not credential.
A cron schedule's expression, shown on hover, is also read out by screen readers ("(cron 15 4 * * *, UTC)").
Configuration: the LDAP access rules count groups thousands with a comma, as every other count does.