Skip to content

HPCC-22655 Update ESDL auth_feature documentation#21025

Open
g-pan wants to merge 7 commits into
hpcc-systems:candidate-10.2.xfrom
g-pan:H22655-AF
Open

HPCC-22655 Update ESDL auth_feature documentation#21025
g-pan wants to merge 7 commits into
hpcc-systems:candidate-10.2.xfrom
g-pan:H22655-AF

Conversation

@g-pan

@g-pan g-pan commented Feb 25, 2026

Copy link
Copy Markdown
Member

Type of change:

  • This change is a bug fix (non-breaking change which fixes an issue).
  • This change is a new feature (non-breaking change which adds functionality).
  • This change improves the code (refactor or other change that does not change the functionality)
  • This change fixes warnings (the fix does not alter the functionality or the generated code)
  • This change is a breaking change (fix or feature that will cause existing behavior to change).
  • This change alters the query API (existing queries will have to be recompiled)

Checklist:

  • My code follows the code style of this project.
    • My code does not create any new warnings from compiler, build system, or lint.
  • The commit message is properly formatted and free of typos.
    • The commit message title makes sense in a changelog, by itself.
    • The commit is signed.
  • My change requires a change to the documentation.
    • I have updated the documentation accordingly, or...
    • I have created a JIRA ticket to update the documentation.
    • Any new interfaces or exported functions are appropriately commented.
  • I have read the CONTRIBUTORS document.
  • The change has been fully tested:
    • I have added tests to cover my changes.
    • All new and existing tests passed.
    • I have checked that this change does not introduce memory leaks.
    • I have used Valgrind or similar tools to check for potential issues.
  • I have given due consideration to all of the following potential concerns:
    • Scalability
    • Performance
    • Security
    • Thread-safety
    • Cloud-compatibility
    • Premature optimization
    • Existing deployed queries will not be broken
    • This change fixes the problem, not just the symptom
    • The target branch of this pull request is appropriate for such a change.
  • There are no similar instances of the same problem that should be addressed
    • I have addressed them here
    • I have raised JIRA issues to address them separately
  • This is a user interface / front-end modification
    • I have tested my changes in multiple modern browsers
    • The component(s) render as expected

Smoketest:

  • Send notifications about my Pull Request position in Smoketest queue.
  • Test my draft Pull Request.

Testing:

Successful Unit Testing: https://github.com/g-pan/github-action-dev-build/actions/runs/22373126789
(formatted PDF files available from the Artifacts there)

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@github-actions

Copy link
Copy Markdown

Jira Issue: https://hpccsystems.atlassian.net//browse/HPCC-22655

Jirabot Action Result:
Workflow Transition To: Merge Pending
Additional PR: #21025

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the ESDL auth_feature documentation to provide comprehensive technical specification of feature-level security configuration in ESDL services and methods.

Changes:

  • Expanded documentation from basic usage to comprehensive technical reference
  • Added formal BNF syntax specification and token semantics
  • Included detailed examples demonstrating service and method-level authentication patterns
Comments suppressed due to low confidence (3)

docs/EN_US/DynamicESDL/DESDL-Mods/ESDLauth_feature.xml:10

  • DocBook uses <literal> for code elements, not <code>. Replace <code>ESPservice</code> with <literal>ESPservice</literal> and <code>ESPmethod</code> with <literal>ESPmethod</literal> to match DocBook conventions and maintain consistency with the rest of the document where <literal> is used for similar elements.
    The <emphasis>auth_feature</emphasis> attribute configures feature-level security in ESDL by associating features and access levels to <code>ESPservice</code> and <code>ESPmethod</code> elements. This provides fine-grained, declarative access control for ESDL services and methods.

docs/EN_US/DynamicESDL/DESDL-Mods/ESDLauth_feature.xml:19

  • DocBook uses <literal> for code elements, not <code>. Replace all instances of <code> with <literal> in this line: ESPservice, EsdlService, ESPmethod, and EsdlMethod.
      <code>ESPservice</code> values take effect at the <code>EsdlService</code> scope, while <code>ESPmethod</code> values are in the <code>EsdlMethod</code> scope and override service scope requirements. If <emphasis>auth_feature</emphasis> is set on both service and method, the resulting security requirement is the union, with method-level tokens taking precedence where conflicts arise.

docs/EN_US/DynamicESDL/DESDL-Mods/ESDLauth_feature.xml:208

  • Corrected 'full access-level' to 'full access level' (removed hyphen between 'access' and 'level').
    ; a new map entry is created that requires full access-level

@JamesDeFabia JamesDeFabia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting is almost there

<para><indexterm>
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<sect1 id="ESDL_AuthFeature">
<title>ESDL auth_feature: Semantics and Syntax</title>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Title should be "auth_feature"
Look at the other attributes in the book. This one should be the same. For example, see max_ver on page 34.

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@github-actions

Copy link
Copy Markdown

🔄 Upmerge Test Results

Status: ✅ All branches merged successfully
PR: #21025 - HPCC-22655 Update ESDL auth_feature documentation
Base Branch: candidate-10.2.x
Test Time: 2026-03-17 15:48:29 UTC

✅ Successful Branches (1)

  • master
    This comment was automatically generated by the upmerge test workflow.

@g-pan g-pan requested a review from JamesDeFabia March 19, 2026 13:41

@JamesDeFabia JamesDeFabia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The formatting is still very different than all the other similar topics. Look at the PDF.

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@github-actions

Copy link
Copy Markdown

🔄 Upmerge Test Results

Status: ✅ All branches merged successfully
PR: #21025 - HPCC-22655 Update ESDL auth_feature documentation
Base Branch: candidate-10.2.x
Test Time: 2026-03-23 19:20:51 UTC

✅ Successful Branches (1)

  • master
    This comment was automatically generated by the upmerge test workflow.

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@github-actions

Copy link
Copy Markdown

🔄 Upmerge Test Results

Status: ✅ All branches merged successfully
PR: #21025 - HPCC-22655 Update ESDL auth_feature documentation
Base Branch: candidate-10.2.x
Test Time: 2026-03-23 21:01:52 UTC

✅ Successful Branches (1)

  • master
    This comment was automatically generated by the upmerge test workflow.

@g-pan g-pan requested a review from JamesDeFabia April 6, 2026 16:21

@JamesDeFabia JamesDeFabia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of comments inline

service level by its own <emphasis>auth_feature</emphasis> string.</para>

<para><emphasis role="bold">See Also: </emphasis> <link
linkend="ESDLESPservice">ESPservice</link>, <link

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two of these three links do not work in the rendered PDF.

]
MyMethod2(MyMethod2Request, MyMethod2Response);
};</programlisting>
</indexterm> The <emphasis>auth_feature</emphasis> attribute configures

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line begins with a space, causing it to appear indented in the PDF

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown

🔄 Upmerge Test Results

Status: ✅ All branches merged successfully
PR: #21025 - HPCC-22655 Update ESDL auth_feature documentation
Base Branch: candidate-10.2.x
Test Time: 2026-04-06 18:57:31 UTC

✅ Successful Branches (1)

  • master
    This comment was automatically generated by the upmerge test workflow.

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown

🔄 Upmerge Test Results

Status: ✅ All branches merged successfully
PR: #21025 - HPCC-22655 Update ESDL auth_feature documentation
Base Branch: candidate-10.2.x
Test Time: 2026-04-06 20:07:37 UTC

✅ Successful Branches (1)

  • master
    This comment was automatically generated by the upmerge test workflow.

@g-pan g-pan requested a review from JamesDeFabia April 6, 2026 20:09

@JamesDeFabia JamesDeFabia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still one broken link. See comment inline


<para><emphasis role="bold">See Also: </emphasis> <link
linkend="EPservice">ESPservice</link>, <link
linkend="ESPmethod">ESPmethod</link>, <link linkend="ESDL_Attributes">ESDL

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The last link (ESDL Attributes) does not work in the rendered PDF. However, I am not sure there needs to be a link to that section from this topic. You can either delete it or fix it.

Signed-off-by: Panagiotatos <greg.panagiotatos+copilot@lexisnexisrisk.com>
@g-pan g-pan requested a review from JamesDeFabia April 7, 2026 11:39
@github-actions

github-actions Bot commented Apr 7, 2026

Copy link
Copy Markdown

🔄 Upmerge Test Results

Status: ✅ All branches merged successfully
PR: #21025 - HPCC-22655 Update ESDL auth_feature documentation
Base Branch: candidate-10.2.x
Test Time: 2026-04-07 11:39:54 UTC

✅ Successful Branches (1)

  • master
    This comment was automatically generated by the upmerge test workflow.

@JamesDeFabia JamesDeFabia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from my POV

feature-name ::= ( feature-name-char* '${' variable-name '}' feature-name-char* | feature-name-char+ )
; feature-name-char is any char except whitespace, ',', '"', '!', or ':'
; feature-name has the added restrictions of not being a reserved-word
variable-name ::= ( 'SERVICE' | 'METHOD' ) </programlisting>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a program listing. It's a variation of a standard notation describing how the attribute value is assembled/interpreted. No part of it is meant to be copied and pasted by a user as a code sample.

Any line beginning with ';' is a comment. These do not need to be presented in code style, except for text between back ticks. Feel free to format the lines as anything but code and, more importantly, line preservation is not required. Multiple comments are truncated by strictly preserving lines.

Comment on lines +278 to +280
<para><emphasis role="bold">Note:</emphasis> The method scope overtakes the
service scope: a method may override any or all requirements set at the
service level by its own <emphasis>auth_feature</emphasis> string.</para>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an important note but probably not worth repeating.


<para><code>ESPservice</code> values take effect at the
<code>EsdlService</code> scope, while <code>ESPmethod</code> values are in
the <code>EsdlMethod</code> scope and override service scope requirements.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... and may either extend or override service scope requirements.

The next sentence does reflect this, but it feels contradictory as written.

resulting security requirement is the union, with method-level tokens taking
precedence where conflicts arise.</para>

<para>See the formal BNF specification and parsing details for precise

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to BNF, but may be better to not call it that.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove BNF

Comment on lines +109 to +112
<entry><literal>!X</literal> (where X is any value)</entry>

<entry>Reserved for future semantics; constraints on X to be
defined. New syntax.</entry>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is used. If you look in the formal syntax, it can negate all lower precedence settings (X is empty or ::), a lower precedence scope (X is a defined scope name), or a lower precedence feature (X is [ optional scope ] :: feature name).

};</programlisting>
</indexterm>The <emphasis>auth_feature</emphasis> attribute configures
feature-level security in ESDL by associating features and access levels to
<code>ESPservice</code> and <code>ESPmethod</code> elements. This provides

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The formal syntax refers to scope-name, which comes into play when discussing overriding settings. It may be good to associate scopes to the elements mentioned.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add note: that this scope could relate

; a new map entry is created specifying the named feature and the given access level
; the security state is affirmed
scope-name ::= ( 'DEFAULT' | 'ESDLSERVICE' | 'ESDLMETHOD' | ... )
; additional names are anticipated resulting from binding integration

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The defined scopes for ecm defined features are: EsdlServie and EsdlMethod. DESDL adds BindingService and BindingMethod to the list. All values are case insensitive. The DESDL extensions have higher precedence than the ecm values, meaning EsdlService can be overridden by EsdlMethod, which can be overridden by BindingService, which can be overridden by BindingMethod.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this : The DESDL extensions have higher precedence than the ecm values, meaning EsdlService can be overridden by EsdlMethod, which can be overridden by BindingService, which can be overridden by BindingMethod. : better description

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

key is that DESDL introduces 2 additional scopes (and the key is you can 'override' ancestor scopes)

ESPservice [auth_feature("DataAccess:Full")] DataService
{
ESPmethod GetData(GetDataRequest, GetDataResponse);
ESPmethod [auth_feature("DataAccess:None")] GetPublicData(GetPublicDataRequest, GetPublicDataResponse);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider splitting into multiple lines to improve appearance. Text extends beyond block background.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants