<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On 30 Aug 2024, at 15:45, Wessel, Keith via users <users@shibboleth.net> wrote:</div><br class="Apple-interchange-newline"><div><span style="caret-color: rgb(0, 0, 0); font-family: Menlo-Regular; font-size: 13px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">I think the answer is yes, but only if I do some complicated custom coding to make it happen. But I'm hoping I'm missing something. Can the MDA consume metadata and add entity attributes to specific entities before outputting it?</span></div></blockquote></div><div><br></div><div>Sorry, I missed this when it came in so this reply is rather delayed. I hope it's still relevant.</div><div><br></div><div>In 0.9.x and earlier, this could be a bit tricky, as you imply. I used XSL transforms in many cases, but that's not for everyone. So, MDA 0.10.0 added a stage specifically for this use case. From the release notes:</div><div><br></div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center"><table bgcolor="#E5E6E9" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system, Helvetica, Arial, sans-serif;table-layout:fixed;background-color:rgba(229, 230, 233, 1);" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x" style="text-decoration: none" draggable="false"><font color="#272727" style="color: rgba(0, 0, 0, 0.847059);">Version 0.10.x - Metadata Aggregator 1 - Confluence</font></a></div><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x" style="text-decoration: none" draggable="false"><font color="#808080" style="color: rgba(0, 0, 0, 0.498039);">shibboleth.atlassian.net</font></a></div></div></td><td style="padding:6px 12px 6px 0px;" class="lp-rich-link-captionBar-rightIconItem" width="36"><a rel="nofollow" href="https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x" draggable="false"><img style="pointer-events:none !important;display:inline-block;width:36px;height:36px;border-radius:3px;" width="36" height="36" draggable="false" class="lp-rich-link-captionBar-rightIcon" alt="favicon-update.ico" src="cid:D908A6BC-198A-4F96-824C-CE497C817D8A"></a></td></tr></tbody></table></td></tr></tbody></table></a></div></div><br></div><div><blockquote type="cite"><ul class="ak-ul" data-indent-level="1" style="font-size: 16px; white-space: pre-wrap; margin: 10px 0px 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: var(--ed--list--item-counter--padding, 24px); box-sizing: border-box; display: flow-root; caret-color: rgb(23, 43, 77); color: rgb(23, 43, 77); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;"><li style="margin-top: var(--ds-space-050,4px);"><p data-renderer-start-pos="7644" style="margin: 0px; padding: 0px; font-size: 1em; line-height: 1.714; letter-spacing: -0.005em;"><a data-testid="link-with-safety" href="https://issues.shibboleth.net/jira/browse/MDA-56" title="https://issues.shibboleth.net/jira/browse/MDA-56" data-renderer-mark="true" class="cc-1rn59kg" style="color: var(--ds-link-pressed,#0052cc); text-decoration: none;">MDA-56</a>: A new stage <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">EntityAttributeAddingStage</code> has been added to add entity attributes to the metadata for SAML entities. This is configured using <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">attributeName</code>, <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">attributeNameFormat</code> and <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">attributeValue</code> properties, with <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">attributeName</code> and <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">attributeNameFormat</code> defaulting to the values required to add an entity category attribute. The stage is based on a new <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">Container</code> framework which attempts to generate reasonably well formatted XML for nested container elements, and handles the insertion of the required parent containers (<code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">Extensions</code>, <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">EntityAttributes</code>, <code class="code cc-1o5d2cw" data-renderer-mark="true" style="font-family: SFMono-Medium, "SF Mono", "Segoe UI Mono", "Roboto Mono", "Ubuntu Mono", Menlo, Consolas, Courier, monospace; background-color: rgba(9, 30, 66, 0.08); overflow: auto; border-radius: var(--ds-border-radius, 3px); -webkit-box-decoration-break: clone; overflow-wrap: break-word; border-style: none; padding: 2px 0.5ch; font-size: 0.875em; display: inline; --ds--code--bg-color: var(--ds-background-neutral, rgba(9, 30, 66, 0.08));">Attribute</code>) when they are not already present.</p></li></ul></blockquote><br></div><div>So, it's a lot more straightforward now. If you need more information, let me know more about what you're trying to do and I'll think about adding to the examples.</div><div></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; font-variant-ligatures: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; font-weight: normal; line-height: normal; border-spacing: 0px; -webkit-text-decorations-in-effect: none;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div><span class="Apple-tab-span" style="white-space: pre; -webkit-text-decorations-in-effect: none;">C</span><span style="-webkit-text-decorations-in-effect: none;">heers,</span></div><div><br></div><div>    -- Ian<br></div><div><span class="Apple-style-span" style="font-size: medium;"><br></span></div></span></div></span><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br></body></html>