From 65834184968a47cfed255713e39d6ad761751add Mon Sep 17 00:00:00 2001 From: Manjinder Date: Fri, 22 May 2026 14:07:11 +0530 Subject: [PATCH 1/4] docs: fixes rendering of parameter table in docs for app desc and deployment Closes #169 Signed-off-by: Manjinder --- .../applications/application-description.linkml.yaml | 2 ++ src/specification/applications/resources/index.md.jinja2 | 9 +++++---- .../margo-management-interface/desired-state.linkml.yaml | 5 ++++- .../margo-management-interface/resources/index.md.jinja2 | 8 ++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/specification/applications/application-description.linkml.yaml b/src/specification/applications/application-description.linkml.yaml index 425ab18a..922a038d 100644 --- a/src/specification/applications/application-description.linkml.yaml +++ b/src/specification/applications/application-description.linkml.yaml @@ -51,6 +51,8 @@ classes: parameters: description: >- Parameters element specifying the configurable parameters to use when installing, or updating, the application. + Defined as a map where each key is the user-defined parameter name (e.g., e.g., `mysqlDatabase:`, `greeting:`, `idpName:`, `myAppEndpoint:`), + and value would be Parameter object, i.e. map[string]Parameter See the [Parameter](#parameter-attributes) section below. range: Parameter multivalued: true diff --git a/src/specification/applications/resources/index.md.jinja2 b/src/specification/applications/resources/index.md.jinja2 index 97195309..fdc62f7e 100644 --- a/src/specification/applications/resources/index.md.jinja2 +++ b/src/specification/applications/resources/index.md.jinja2 @@ -56,13 +56,14 @@ which defines the [desired state](../margo-management-interface/desired-state.md | Attribute | Type | Required? | Description | | --- | --- | --- | --- | -{% for slot in gen.get_direct_slots(c)|sort(attribute='rank') -%} -{%- if slot.name != "value" -%} +{%- for slot in gen.get_direct_slots(c)|sort(attribute='rank') %} +{%- if c.name == "Parameter" and slot.name == "name" %} +{%- elif slot.name != "value" %} | {{ slot.name }} | {{ format_range(slot) }} | {% if slot.required == True %} Y {% else %} N {% endif %} | {{ slot.description }}| -{%- else -%} +{%- else %} | {{ slot.name }} | <*see description*> | {% if slot.required == True %} Y {% else %} N {% endif %} | {{ slot.description }}| {%- endif %} -{% endfor %} +{%- endfor %} {%- endif %} diff --git a/src/specification/margo-management-interface/desired-state.linkml.yaml b/src/specification/margo-management-interface/desired-state.linkml.yaml index d6f8e991..9ae1f9ac 100644 --- a/src/specification/margo-management-interface/desired-state.linkml.yaml +++ b/src/specification/margo-management-interface/desired-state.linkml.yaml @@ -100,7 +100,10 @@ classes: required: true rank: 10 parameters: - description: Describes the configured parameters applied via the end-user. + description: >- + Describes the configured parameters applied via the end-user. + Defined as a map where each key is the parameter name matching a parameter defined in the ApplicationDescription + (e.g., `mysqlDatabase:`, `greeting:`, `idpName:`, `myAppEndpoint:`); unrecognized keys are ignored. range: Parameter required: true multivalued: true diff --git a/src/specification/margo-management-interface/resources/index.md.jinja2 b/src/specification/margo-management-interface/resources/index.md.jinja2 index 3d9c3d33..de2c37a1 100644 --- a/src/specification/margo-management-interface/resources/index.md.jinja2 +++ b/src/specification/margo-management-interface/resources/index.md.jinja2 @@ -324,9 +324,13 @@ spec: | Attribute | Type | Required? | Description | | --- | --- | --- | --- | -{% for slot in gen.get_direct_slots(c)|sort(attribute='rank') -%} +{%- for slot in gen.get_direct_slots(c)|sort(attribute='rank') -%} +{%- set parameters_slot = schemaview.get_slot("parameters") -%} +{%- set is_map_key = parameters_slot and parameters_slot.range == c.name and not parameters_slot.inlined_as_list and slot.identifier %} +{%- if not is_map_key %} | {{ slot.name }} | {{ format_range(slot) }} | {% if slot.required == True %} Y {% else %} N {% endif %} | {{ slot.description }}| -{% endfor %} +{%- endif %} +{%- endfor %} {%- endif %} {%- endfor %} From 642cd8d8b8ed65ddd137e7723c27a24c38510dd8 Mon Sep 17 00:00:00 2001 From: Manjinder Date: Mon, 25 May 2026 12:15:03 +0530 Subject: [PATCH 2/4] docs(linkml): removes duplicate wording from the param description Signed-off-by: Manjinder --- .../applications/application-description.linkml.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/specification/applications/application-description.linkml.yaml b/src/specification/applications/application-description.linkml.yaml index 922a038d..d07f63c1 100644 --- a/src/specification/applications/application-description.linkml.yaml +++ b/src/specification/applications/application-description.linkml.yaml @@ -51,7 +51,7 @@ classes: parameters: description: >- Parameters element specifying the configurable parameters to use when installing, or updating, the application. - Defined as a map where each key is the user-defined parameter name (e.g., e.g., `mysqlDatabase:`, `greeting:`, `idpName:`, `myAppEndpoint:`), + Defined as a map where each key is the user-defined parameter name (e.g. `mysqlDatabase:`, `greeting:`, `idpName:`, `myAppEndpoint:`), and value would be Parameter object, i.e. map[string]Parameter See the [Parameter](#parameter-attributes) section below. range: Parameter From 94bf1b9a9d04d77a809c9ae155c8762794dbc54c Mon Sep 17 00:00:00 2001 From: Manjinder Date: Thu, 28 May 2026 11:25:10 +0530 Subject: [PATCH 3/4] docs(linkml): clarifies the Parameter object definition Signed-off-by: Manjinder --- .../applications/application-description.linkml.yaml | 7 +++++-- src/specification/applications/resources/index.md.jinja2 | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/specification/applications/application-description.linkml.yaml b/src/specification/applications/application-description.linkml.yaml index d07f63c1..ef92a62d 100644 --- a/src/specification/applications/application-description.linkml.yaml +++ b/src/specification/applications/application-description.linkml.yaml @@ -52,7 +52,7 @@ classes: description: >- Parameters element specifying the configurable parameters to use when installing, or updating, the application. Defined as a map where each key is the user-defined parameter name (e.g. `mysqlDatabase:`, `greeting:`, `idpName:`, `myAppEndpoint:`), - and value would be Parameter object, i.e. map[string]Parameter + and value would be Parameter object, i.e. map[string]Parameter. See the [Parameter](#parameter-attributes) section below. range: Parameter multivalued: true @@ -414,7 +414,10 @@ classes: range: string Parameter: - description: Defines a configurable parameter for the application. + description: >- + Defines a configurable parameter for the application. + This object is used to build a property bag, i.e. `parameters`, defined in application description. + See `parameters` attribute under [ApplicationDescription Attributes](application-description.md#top-level-attributes) section for better understanding. rank: 90 attributes: name: diff --git a/src/specification/applications/resources/index.md.jinja2 b/src/specification/applications/resources/index.md.jinja2 index fdc62f7e..ad2aa9bc 100644 --- a/src/specification/applications/resources/index.md.jinja2 +++ b/src/specification/applications/resources/index.md.jinja2 @@ -69,6 +69,7 @@ which defines the [desired state](../margo-management-interface/desired-state.md {%- if c.name.startswith("DeploymentProfile") %} + #### Helm Exceptions Applications can be deployed as Helm charts using either Helm [version 3](https://helm.sh/docs/v3/topics/charts) or [version 4](https://helm.sh/docs/topics/charts) using Chart APIVersion v2 only. From bbfcf96fb9390ac5aac33dc129931336ff97845a Mon Sep 17 00:00:00 2001 From: Manjinder Date: Thu, 28 May 2026 23:54:09 +0530 Subject: [PATCH 4/4] docs(linkml): fixes anchor tag reference for application description attributes Signed-off-by: Manjinder --- .../applications/application-description.linkml.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/specification/applications/application-description.linkml.yaml b/src/specification/applications/application-description.linkml.yaml index ef92a62d..62b97cd1 100644 --- a/src/specification/applications/application-description.linkml.yaml +++ b/src/specification/applications/application-description.linkml.yaml @@ -417,7 +417,7 @@ classes: description: >- Defines a configurable parameter for the application. This object is used to build a property bag, i.e. `parameters`, defined in application description. - See `parameters` attribute under [ApplicationDescription Attributes](application-description.md#top-level-attributes) section for better understanding. + See `parameters` attribute under [ApplicationDescription Attributes](#top-level-attributes) section for better understanding. rank: 90 attributes: name: