<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;"><meta http-equiv="content-type" content="text/html; charset=us-ascii"><div style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Once more, with less embedded junk:<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;"><a href="https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x">https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/1495859647/Version+0.10.x</a></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);"><div 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.</div></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></div></body></html>