Skip to content

app template: one row per template in list, a richer describe, and -v/--version #1312

Open

Description

@vscheuber

Problem

frodo app template list prints one line for every version of every template (125 lines for 51 templates), and list -l shows nine columns of which three (Name, Group, Display name) are the same fact. describe prints the list -l row plus the description and support URL, so it adds almost nothing: the catalog entries hold about 1.5 MB of detail (object types, connector configuration, application form, SSO setup) that only describe --json reaches. The id the commands print (3_4-azure-ad) is the key the catalog uses internally. It is not in any application record, and it changes with every new version of a template.

What the catalog holds (checked against the live catalog)

  • 125 entries, 51 distinct templates (id field, for example azure.ad), 21 of them with more than one version (up to 10). Group, id and display name are 1:1; no two templates share a display name; the display name never changes between versions.
  • An application record keeps the pair templateName (azure.ad) and templateVersion (3.4). The key 3_4-azure-ad is only the object key in the catalog.
  • templateType is Enterprise on 112 of 125 entries and is not consistent in case (SAML, wsfed); Microsoft 365 is a WS-Fed SSO template typed Enterprise. What a template provides is better read from capabilities (provisioning CRUD, SSO protocols), the connector block and target.
  • dateUpdated comes in four formats and does not follow the version order (AS400 1.1 is older than 1.0; SCIM 2.3 is older than 2.2). Newest is decided by the version number; dates are shown as ISO and never used to order.
  • bundleVersion is the connector version range the template needs (ServiceNow 3.3 [1.5.20.14, 1.5.20.31), 4.0 [1.5.20.30, 1.6.0.0)).
  • categories always holds one value; 26 of 125 are Uncategorized. Show what the catalog says.
  • 18 entries have no connector (consumer templates and Microsoft 365 WS-Fed); bookmark has no capabilities.

Decisions (maintainer, 2026-11-13)

  • The change is CLI-only: the summary is presentation. It moves to the library only if another command (a future frodo app validate) needs it.
  • list shows the newest version of each template (51 rows). list --all-versions shows every version.
  • The handle is the real id (azure.ad, the id field of the catalog and the templateName of an application) together with the version. --all-versions keeps printing what list printed before this change (one line per version, with the version id such as 3_4-azure-ad), and describe -i takes both forms: the bare id (newest version, or -v) and the version id.
  • -i/--template-id <id> takes the id; -v/--template-version <version> selects another version than the newest; -n/--template-name <display name> takes the display name (case-insensitive). Ids accept dots or hyphens, any case.
  • No filters in this round.

Proposal

frodo app template list: the ids, one per line, newest version of each template.

frodo app template list -l (98 columns wide on the live catalog, nothing truncated):

Id                       │Name                           │Category         │Prov│Ver   │Updated
active.directory         │Active Directory               │IT infrastructure│P   │2.5*  │2024-12-11
aws.bedrock              │AWS Bedrock                    │AI Services      │AP  │1.0   │2026-05-15
azure.ad                 │Microsoft Entra                │Uncategorized    │P   │3.4*  │2026-08-19
saml                     │SAML                           │saml             │S   │1.3*  │2026-02-05

P provisioning  A AI target  S SAML  O OIDC  F WS-Fed  T WS-Trust  B bookmark  * older versions exist

Prov is one letter per capability; * behind the version means older versions exist (describe lists them). The connector is not a column of the list; describe shows it.

frodo app template list --all-versions (with or without -l): exactly what list and list -l printed before this change: one line per version with the version id (3_4-azure-ad), and with -l the nine-column table.

frodo app template describe -i azure.ad [-v 3.1] or describe -i 3_1-azure-ad (the bare id means the newest version; the version id means that version; no tenant needed):

  1. Header: display name, id, group, category, what it provides, version (newest or not), ISO date, description, support URL.
  2. Versions: every version with date, connector range, object type and property counts, and a marker for the one shown.
  3. Connector (if any): display name, class, bundle and range, paging type, the basic and advanced configuration fields (required ones marked), prerequisites titles.
  4. Capabilities: create/read/update/delete, SSO protocols, incremental reconciliation property, target, OAuth flow.
  5. Object types: name, native type, managed resource, property count, required count.
  6. Application form: sections of schema with field counts.
  7. -l adds the properties of each object type and the labels of the form fields. --json stays the whole entry.

Derived Prov letters: A when target is set, P for a connector with a provisioning capability, S/O/F/T for the SSO protocols in capabilities.sso (SAML, OIDC, WS-Fed, WS-Trust), B for the bookmark template.

Notes for the implementation

  • Read every field defensively: templates the tenant defines are not validated by the library.
  • Unknown or unparsable dates are printed as they are.
  • Without a connector the Connector sections are left out; without capabilities the Capabilities section is left out.
  • Tests are hermetic: a small fixture catalog with a multi-version template, a template with no connector, an SSO template, a tenant override and a template with an odd date.
  • README and the help text of the three commands; the recordings of these commands (not done yet) wait for this change.

Activity

  1. added
    enhancementNew feature or request
    no-auto-processingConcierge never touches this item; remove the label to hand it over
    on Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestno-auto-processingConcierge never touches this item; remove the label to hand it over

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions