diff --git a/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy b/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy index a45acac94..363f1a06f 100644 --- a/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy +++ b/backend/src/integration/groovy/edu/internet2/tier/shibboleth/admin/ui/SeleniumSIDETest.groovy @@ -154,6 +154,9 @@ class SeleniumSIDETest extends Specification { 'SHIBUI-2052: Logged in user & role appear on dashboard' | '/SHIBUI-2052.side' 'SHIBUI-2116: Verify entity attribute bundle highlights' | '/SHIBUI-2116.side' // Note that this script WILL NOT PASS in the Selenium IDE due to ${driver} not being set (it is provided by this groovy script). 'SHIBUI-2267: Verify new RPO CRUD' | '/SHIBUI-2267.side' + 'SHIBUI-1674: Verify metadata source tooltips' | '/SHIBUI-1674-1.side' + 'SHIBUI-1674: Verify metadata provider tooltips' | '/SHIBUI-1674-2.side' + 'SHIBUI-1674: Verify advanced menu tooltips' | '/SHIBUI-1674-3.side' 'SHIBUI-2269: Verify XML generation of external filters' | '/SHIBUI-2269.side' } } diff --git a/backend/src/integration/resources/SHIBUI-1674-1.side b/backend/src/integration/resources/SHIBUI-1674-1.side new file mode 100644 index 000000000..e2c62c188 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1674-1.side @@ -0,0 +1,764 @@ +{ + "id": "1b31a551-eb09-4bd4-8db9-694bf1539a46", + "version": "2.0", + "name": "SHIBUI-1674-1", + "url": "http://localhost:10101", + "tests": [{ + "id": "841ade0e-83bd-4a4b-94f2-de6bd5c536b2", + "name": "SHIBUI-1674-1", + "commands": [{ + "id": "d6b23986-6d14-4b10-be7b-a7e6f576e3b2", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "f77ecd77-01c2-4463-944e-1a69600f5297", + "comment": "", + "command": "type", + "target": "name=username", + "targets": [ + ["name=username", "name"], + ["css=tr:nth-child(1) input", "css:finder"], + ["xpath=//input[@name='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "admin" + }, { + "id": "c9bf0a22-faa9-494c-b2ed-6c9653248551", + "comment": "", + "command": "type", + "target": "name=password", + "targets": [ + ["name=password", "name"], + ["css=tr:nth-child(2) input", "css:finder"], + ["xpath=//input[@name='password']", "xpath:attributes"], + ["xpath=//tr[2]/td[2]/input", "xpath:position"] + ], + "value": "adminpass" + }, { + "id": "7ab1d854-3582-4101-bd19-f94b8f438090", + "comment": "", + "command": "sendKeys", + "target": "name=password", + "targets": [ + ["name=password", "name"], + ["css=tr:nth-child(2) input", "css:finder"], + ["xpath=//input[@name='password']", "xpath:attributes"], + ["xpath=//tr[2]/td[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "4059cae7-b9f9-49d0-a213-343bcaba66d1", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "f03af8d5-5875-4a2c-b93a-c3ddcbd4b16a", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "081f495b-4d84-4758-824c-1e85b6311e7f", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "9e912dd5-6ace-45be-bafd-2d1655906575", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "3bb52950-667c-4852-a98f-6a6fb5632ba5", + "comment": "", + "command": "waitForElementEditable", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fc2df69a-a340-44c4-b3c3-ec21670be567", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2db70b89-b8e2-471f-8db9-cc9361058e72", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-source", + "targets": [ + ["id=metadata-nav-dropdown-source", "id"], + ["linkText=Add a new metadata source", "linkText"], + ["css=#metadata-nav-dropdown-source", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata source')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-source']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata source')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "93d20204-7dfa-44c0-8e61-6741e73594f5", + "comment": "", + "command": "waitForElementPresent", + "target": "css=.mb-3:nth-child(2) .btn path", + "targets": [], + "value": "30000" + }, { + "id": "a7b2b925-2274-4dcc-a4e3-3b727c9a047a", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(2) .btn path", + "targets": [ + ["css=.mb-3:nth-child(2) .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "ca3dfd3d-553f-4f75-8bff-50fd057db7db", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "An entityID is the SAML identifier that uniquely names a service provider." + }, { + "id": "8b4eb229-ecfe-4994-902a-d08b55b86504", + "comment": "", + "command": "type", + "target": "id=root_serviceProviderName", + "targets": [ + ["id=root_serviceProviderName", "id"], + ["css=#root_serviceProviderName", "css:finder"], + ["xpath=//input[@id='root_serviceProviderName']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "Tooltip Test" + }, { + "id": "8a48a499-f163-425a-a704-4a7efbb2c311", + "comment": "", + "command": "type", + "target": "id=root_entityId", + "targets": [ + ["id=root_entityId", "id"], + ["css=#root_entityId", "css:finder"], + ["xpath=//input[@id='root_entityId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[3]/div/div/form/div/div/div/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "Test" + }, { + "id": "e8110e2e-5973-412c-b719-fe61261f4c06", + "comment": "", + "command": "click", + "target": "css=.nav-link", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "ca21608c-baaa-400d-b8bd-8ad0eb4b7a53", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(1) > .col-12 > .mb-3 path", + "targets": [ + ["css=.row:nth-child(1) > .col-12 > .mb-3 path", "css:finder"] + ], + "value": "" + }, { + "id": "5370bc80-c637-4b2b-8e5d-b3db821a228a", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Name of the organization standing up the entity." + }, { + "id": "63043982-9758-4a64-8df7-6c902359979f", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "b56c1325-5438-4b5a-b626-79b030d04313", + "comment": "", + "command": "mouseOver", + "target": "css=.d-empty-none:nth-child(2) > .mb-3:nth-child(1) path", + "targets": [ + ["css=.d-empty-none:nth-child(2) > .mb-3:nth-child(1) path", "css:finder"] + ], + "value": "" + }, { + "id": "63fb1e52-b70d-4a2e-a71b-52a47a80b732", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The IdP Privacy Statement URL is a link to the IdP's Privacy Statement. The content of the Privacy Statement should be targeted at end users." + }, { + "id": "2b80c885-9e61-489c-bf8a-db8efc7c6a0e", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "f041b735-85f2-4005-ad80-16a82c683f60", + "comment": "", + "command": "mouseOver", + "target": "css=.ms-2 > path", + "targets": [ + ["css=.ms-2 > path", "css:finder"] + ], + "value": "" + }, { + "id": "2f7c3fc3-d1ac-445a-850b-3696be0c22cf", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "This attribute contains a space-delimited collection of URIs that represent general classes of protocol support for the role in question. There are URIs defined by the various standards and profiles to represent the fact that an entity acting in a role \"supports\" a particular protocol family, such as SAML 2.0 or the Shibboleth profile of SAML 1.1." + }, { + "id": "c1eb927c-0f47-4b7a-8f7a-39f88f01f645", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "be222605-95ec-4a48-b02c-9b29f47e1ef5", + "comment": "", + "command": "mouseOver", + "target": "css=.fa-circle-info > path", + "targets": [ + ["css=.fa-circle-info > path", "css:finder"] + ], + "value": "" + }, { + "id": "00d5a2db-9b4d-48c0-97d9-724f62415559", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "If your SP supports SAML 2.0 Single Logout, you will need to include one or more endpoint elements in the metadata." + }, { + "id": "45ff7f8d-4001-48bd-8f23-52b6d15cf94c", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "397a8204-b6b1-442f-a491-4c89b1d320ff", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(1) > div > .mb-3 path", + "targets": [ + ["css=.mb-3:nth-child(1) > div > .mb-3 path", "css:finder"] + ], + "value": "" + }, { + "id": "8d29bc2d-68e2-4e4c-b111-b9637ac4a7b3", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Whether to sign requests. Signing requests helps to verify that the request from the SP is authentic." + }, { + "id": "e1c906a3-bd1d-4684-b6fb-56de3a653579", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "6cfdcca2-1deb-4055-9b75-afbfbf728783", + "comment": "", + "command": "mouseOver", + "target": "css=.fa-circle-info > path", + "targets": [ + ["css=.fa-circle-info > path", "css:finder"] + ], + "value": "" + }, { + "id": "8e3694e9-fcb8-40e9-94d9-4b3fe7dd4e46", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "An Assertion Consumer Service (or ACS) is SAML terminology for the location at a ServiceProvider that accepts messages (or SAML artifacts) for the purpose of establishing a session based on an assertion." + }, { + "id": "2658b197-a2d5-4060-9b34-eb80aee1ded2", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "56f49fe8-340c-46fa-bda9-0b3c0de98bdb", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(1) > .col-12:nth-child(1) > .mb-3:nth-child(1) path:nth-child(1)", + "targets": [ + ["css=.row:nth-child(1) > .col-12:nth-child(1) > .mb-3:nth-child(1) path:nth-child(1)", "css:finder"] + ], + "value": "" + }, { + "id": "6f3d1d4a-f1ca-461b-9416-9d8e18ffccef", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Sign Assertion declares that the service provider wants the element to be digitally signed." + }, { + "id": "5c718136-9eba-46f9-b93b-da820abe2719", + "comment": "", + "command": "mouseOut", + "target": "css=.row:nth-child(1) > .col-12:nth-child(1) > .mb-3:nth-child(1) path:nth-child(1)", + "targets": [], + "value": "" + }, { + "id": "268b3df4-a184-4a39-bec3-70dfc598b073", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "f5024e0f-960b-4ce6-873e-4259e0d79ce8", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "54a74399-69aa-4412-85c2-a5bbb543d8be", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(8) path:nth-child(1)", + "targets": [ + ["css=.app-root", "css:finder"], + ["xpath=//div[@id='root']/div", "xpath:idRelative"], + ["xpath=//div[3]/div", "xpath:position"] + ], + "value": "" + }, { + "id": "e6976eca-f54b-4015-8f87-ba06a469ab28", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Do not sign the full authentication response to the service provider. Enabling this property will reduce the size of the response to service providers who may have limitations to the size of the response." + }, { + "id": "87036a6f-aebd-4ef1-8cb8-03d082676c03", + "comment": "", + "command": "mouseOut", + "target": "css=.row:nth-child(8) path:nth-child(1)", + "targets": [], + "value": "" + }, { + "id": "31fdddde-2472-4921-950c-ca56555c2d5b", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "30ec5f42-49cb-4917-aca8-640736b8f948", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "809daed0-c5d7-4cb6-89d7-be9409f1d7ae", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "1fae7d2d-1e36-486a-b3a8-c76a3db141e4", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.next", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "23f5b4ad-7f9c-46e3-bf3f-b1ea57eb1ac7", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "17c42282-eaa5-4641-8f39-969c0a13f561", + "comment": "", + "command": "waitForElementVisible", + "target": "linkText=Tooltip Test", + "targets": [ + ["linkText=Tooltip Test", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'Tooltip Test')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/source/14b50734-c3e2-48ac-bdb9-342b91174ca7/configuration/options')]", "xpath:href"], + ["xpath=//td/a", "xpath:position"], + ["xpath=//a[contains(.,'Tooltip Test')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "beae53d2-254a-4422-a302-06a72dc6aacc", + "comment": "", + "command": "click", + "target": "linkText=Tooltip Test", + "targets": [], + "value": "" + }, { + "id": "edd4c7ed-ec92-4f61-8f2d-16bec5c79b60", + "comment": "", + "command": "click", + "target": "css=.mb-4:nth-child(3) .edit-link", + "targets": [ + ["css=.mb-4:nth-child(3) .edit-link", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div/div/section/div/div/div/button", "xpath:idRelative"], + ["xpath=//section/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Edit')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c974e795-454e-4271-86ef-609e3538b28f", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(1) > .col-12 .svg-inline--fa", + "targets": [ + ["css=.row:nth-child(1) > .col-12 .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "e2e21f5c-bcf5-484f-b840-e1f2104b0921", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Name of the organization standing up the entity." + }, { + "id": "2177712e-3ffa-4d70-a546-4425fa6b6565", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'User Interface / MDUI Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5b8ce0c5-f2d1-4bca-acb1-c22a3ed02fd7", + "comment": "", + "command": "mouseOver", + "target": "css=.d-empty-none:nth-child(1) > .mb-3:nth-child(2) path", + "targets": [ + ["css=.d-empty-none:nth-child(1) > .mb-3:nth-child(2) path", "css:finder"] + ], + "value": "" + }, { + "id": "65551475-41fb-42a3-aeea-2c92884adf6a", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field." + }, { + "id": "a952c81f-7dc1-4f26-812e-8c1a4101fa7a", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(3)", + "targets": [ + ["css=.nav-link:nth-child(3)", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'SP SSO Descriptor Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "013648f1-be7a-4fbf-a5c4-07482ca9fc96", + "comment": "", + "command": "mouseOver", + "target": "css=.ms-2 > path", + "targets": [ + ["css=.ms-2 > path", "css:finder"] + ], + "value": "" + }, { + "id": "6851171e-6a6f-46e4-9317-bab6ad077127", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "This attribute contains a space-delimited collection of URIs that represent general classes of protocol support for the role in question. There are URIs defined by the various standards and profiles to represent the fact that an entity acting in a role \"supports\" a particular protocol family, such as SAML 2.0 or the Shibboleth profile of SAML 1.1." + }, { + "id": "b9c465ec-b07a-4c57-9caf-988bb1eac6ed", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(4)", + "targets": [ + ["css=.nav-link:nth-child(4)", "css:finder"], + ["xpath=(//button[@type='button'])[11]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[4]", "xpath:idRelative"], + ["xpath=//button[4]", "xpath:position"], + ["xpath=//button[contains(.,'Logout Endpoints')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d727cd8d-5195-45e5-9df3-1e1d386e6f81", + "comment": "", + "command": "click", + "target": "css=.array-add-button", + "targets": [ + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[5]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "825b4bb3-e40e-4b02-a053-5f8e15b9b672", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(1) > .col-12 .btn > .svg-inline--fa", + "targets": [], + "value": "" + }, { + "id": "8b309a28-ff0d-4e6b-8c49-26a9e13822d8", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [ + ["css=.row:nth-child(1) > .col-12 .btn > .svg-inline--fa", "css:finder"] + ], + "value": "The location of the handler (when combined with the base handlerURL). This is the location to which an IdP sends messages using whatever protocol and binding it shares with the SP. Each combination of SLO protocol and binding is installed at a unique location to improve efficiency." + }, { + "id": "687f9331-fd88-43c5-ad58-0c4e04bc5adf", + "comment": "", + "command": "click", + "target": "css=.m-0 > .text-danger", + "targets": [ + ["css=.m-0 > .text-danger", "css:finder"], + ["xpath=(//button[@type='button'])[19]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[5]/div/div/div/div/div[2]/div/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Delete')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "eb728c91-52d6-4505-85c2-ad274be14f88", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(5)", + "targets": [ + ["css=.nav-link:nth-child(5)", "css:finder"], + ["xpath=(//button[@type='button'])[12]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[5]", "xpath:idRelative"], + ["xpath=//button[5]", "xpath:position"], + ["xpath=//button[contains(.,'Security Information')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "84415564-f9d8-4b75-a6cf-5c269cb8eb9f", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(2) path", + "targets": [ + ["css=.mb-3:nth-child(2) path", "css:finder"] + ], + "value": "" + }, { + "id": "75ae4766-62a2-47e1-9328-a7030fbfcdb1", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [ + ["css=.row:nth-child(1) > .col-12 .btn > .svg-inline--fa", "css:finder"] + ], + "value": "Whether to sign assertions. Element declares that the service provider wants the element to be digitally signed." + }, { + "id": "c069fd81-2679-4e6c-9115-63cf783a4b82", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(6)", + "targets": [ + ["css=.nav-link:nth-child(6)", "css:finder"], + ["xpath=(//button[@type='button'])[13]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[6]", "xpath:idRelative"], + ["xpath=//button[6]", "xpath:position"], + ["xpath=//button[contains(.,'Assertion Consumer Service')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ae3fd3f3-d7e9-4594-8f62-0bdd81fe207f", + "comment": "", + "command": "click", + "target": "css=.array-add-button", + "targets": [ + ["css=.array-add-button", "css:finder"], + ["xpath=(//button[@type='button'])[16]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div[2]/div/form/div/div/div/div/div[7]/div/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'Add ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ff8f4f9f-0832-4a08-910d-778156869d6a", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3 > .form-label > .btn path", + "targets": [ + ["css=.mb-3 > .form-label > .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "201ad760-133b-4ab6-8be9-ef0ef1849930", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [ + ["css=.row:nth-child(1) > .col-12 .btn > .svg-inline--fa", "css:finder"] + ], + "value": "The binding attribute of the element is a standard URI specified in the SAML 2.0 Binding specification." + }, { + "id": "a1a1d817-93ba-4a09-b52e-b660f000b018", + "comment": "", + "command": "click", + "target": "css=.fa-trash > path", + "targets": [ + ["css=.fa-trash > path", "css:finder"] + ], + "value": "" + }, { + "id": "acea6b6b-04c4-4224-831c-9067cc09ee9a", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(7)", + "targets": [ + ["css=.nav-link:nth-child(7)", "css:finder"], + ["xpath=(//button[@type='button'])[14]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/nav/button[7]", "xpath:idRelative"], + ["xpath=//button[7]", "xpath:position"], + ["xpath=//button[contains(.,'Relying Party Overrides')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2928ba27-b934-499e-8dda-8441dbbb463d", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(7) path:nth-child(1)", + "targets": [ + ["css=.row:nth-child(7) path:nth-child(1)", "css:finder"] + ], + "value": "" + }, { + "id": "085ff864-1a6b-469f-9009-9d6072e2d689", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [ + ["css=.row:nth-child(1) > .col-12 .btn > .svg-inline--fa", "css:finder"] + ], + "value": "Disallows use (or reuse) of authentication results and login flows that don't provide a real-time proof of user presence in the login process" + }, { + "id": "1ff63b39-ee65-46a0-9258-56209aa63e4b", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "0bc97fad-e6a1-4cb7-9c50-f43f5ff436a6", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }] + }], + "suites": [{ + "id": "d2caeac4-7520-4e3c-96b1-840610b6983c", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["841ade0e-83bd-4a4b-94f2-de6bd5c536b2"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1674-2.side b/backend/src/integration/resources/SHIBUI-1674-2.side new file mode 100644 index 000000000..fb33695f5 --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1674-2.side @@ -0,0 +1,1455 @@ +{ + "id": "1b31a551-eb09-4bd4-8db9-694bf1539a46", + "version": "2.0", + "name": "SHIBUI-1674-2", + "url": "http://localhost:10101", + "tests": [{ + "id": "841ade0e-83bd-4a4b-94f2-de6bd5c536b2", + "name": "SHIBUI-1674-2", + "commands": [{ + "id": "d6b23986-6d14-4b10-be7b-a7e6f576e3b2", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "f77ecd77-01c2-4463-944e-1a69600f5297", + "comment": "", + "command": "type", + "target": "name=username", + "targets": [ + ["name=username", "name"], + ["css=tr:nth-child(1) input", "css:finder"], + ["xpath=//input[@name='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "admin" + }, { + "id": "c9bf0a22-faa9-494c-b2ed-6c9653248551", + "comment": "", + "command": "type", + "target": "name=password", + "targets": [ + ["name=password", "name"], + ["css=tr:nth-child(2) input", "css:finder"], + ["xpath=//input[@name='password']", "xpath:attributes"], + ["xpath=//tr[2]/td[2]/input", "xpath:position"] + ], + "value": "adminpass" + }, { + "id": "7ab1d854-3582-4101-bd19-f94b8f438090", + "comment": "", + "command": "sendKeys", + "target": "name=password", + "targets": [ + ["name=password", "name"], + ["css=tr:nth-child(2) input", "css:finder"], + ["xpath=//input[@name='password']", "xpath:attributes"], + ["xpath=//tr[2]/td[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "4059cae7-b9f9-49d0-a213-343bcaba66d1", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "f03af8d5-5875-4a2c-b93a-c3ddcbd4b16a", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "081f495b-4d84-4758-824c-1e85b6311e7f", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "9e912dd5-6ace-45be-bafd-2d1655906575", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "3bb52950-667c-4852-a98f-6a6fb5632ba5", + "comment": "", + "command": "waitForElementEditable", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "fc2df69a-a340-44c4-b3c3-ec21670be567", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "64e1be5d-4fd2-4b94-b714-48736a0bbc3d", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-provider", + "targets": [ + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4d377f17-a1ca-4c06-97c0-86f0240bb3ee", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "6b7f87a2-e822-4289-8e83-f6c879b485f7", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FileBackedHttpMetadataResolver" + }, { + "id": "e469e748-3433-4561-97b3-20eca852bb98", + "comment": "", + "command": "type", + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "FBHMR" + }, { + "id": "2f6171c0-f11f-4d3a-99fe-4ba3ef743f3f", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(2) .info-icon > .svg-inline--fa", + "targets": [ + ["css=.mb-3:nth-child(2) .info-icon > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "e1f5e376-772a-456c-9c62-c2543687a154", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The precise behavior of any element is controlled by the xsi:type attribute. This specifies the exact type of provider to use." + }, { + "id": "d925e00f-1d00-4541-bbb5-e6a2d668de9a", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "6d8efa55-ad05-4a15-b65a-74622feff0af", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "1" + }, { + "id": "88bd1be4-5c22-4147-85f1-e20b05b0b3a0", + "comment": "", + "command": "type", + "target": "id=root_metadataURL", + "targets": [ + ["id=root_metadataURL", "id"], + ["css=#root_metadataURL", "css:finder"], + ["xpath=//input[@id='root_metadataURL']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "https://idp.unicon.net/idp/shibboleth" + }, { + "id": "c531d779-4bc8-44bd-9aa1-c04262edcd36", + "comment": "", + "command": "type", + "target": "id=root_backingFile", + "targets": [ + ["id=root_backingFile", "id"], + ["css=#root_backingFile", "css:finder"], + ["xpath=//input[@id='root_backingFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "f9d5dd8a-10e3-4ec0-955e-12c2c3e4df26", + "comment": "", + "command": "click", + "target": "css=.toggle-button", + "targets": [], + "value": "" + }, { + "id": "be6afcb8-e7b5-4838-876a-2304a69c078f", + "comment": "", + "command": "click", + "target": "id=option-selector-items-root_backupFileInitNextRefreshDelay-item-3", + "targets": [], + "value": "" + }, { + "id": "c3323c50-da68-42be-8ecf-1754be5f402e", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(7) path", + "targets": [ + ["css=.mb-3:nth-child(7) path", "css:finder"] + ], + "value": "" + }, { + "id": "2c70ddbd-4a58-4e23-a134-dd168dbfdf62", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Whether to fail initialization of the underlying MetadataResolverService (and possibly the IdP as a whole) if the initialization of a metadata provider fails. When false, the IdP may start, and will continue to attempt to reload valid metadata if configured to do so, but operations that require valid metadata will fail until it does." + }, { + "id": "3a2ee060-bea9-4ee6-86ac-0bfec851a0f4", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "f9c24b89-5e95-439f-9f94-13e5482ba269", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(2) .form-label > .btn > .svg-inline--fa", + "targets": [ + ["css=.row:nth-child(2) .form-label > .btn > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "c656db9f-fa69-4476-8760-f15c91c4db6e", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Upper bound on the next refresh from the time calculated based on the metadata's expiration." + }, { + "id": "dd29f528-f275-4258-9495-11039074c599", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "8b9ab8e9-4856-4382-824b-37332e504342", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(3) > .col-12 > .mb-3 .form-label path", + "targets": [ + ["css=.row:nth-child(3) > .col-12 > .mb-3 .form-label path", "css:finder"] + ], + "value": "" + }, { + "id": "670d88ef-01fe-4d6f-aa03-22df00784246", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "A path (on the local file system) to a certificate file whose key is used to verify the signature. Conflicts with trustEngineRef and both of the child elements." + }, { + "id": "7dabc0ab-d5ed-4f6b-9695-075d332bc00e", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "06ed36cf-160c-4a0c-ad36-3ad27e8c6274", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.save", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/nav/ul/li[3]/button", "xpath:idRelative"], + ["xpath=//li[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "e88c3946-6bba-453c-bd76-a87602b7a26c", + "comment": "", + "command": "waitForElementPresent", + "target": "linkText=FBHMR", + "targets": [ + ["linkText=FBHMR", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'FBHMR')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/b33533c3-dd67-418a-b387-188045e2f821/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'FBHMR')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "0feeadff-9325-4a92-992e-51da6e4611d6", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "78070ae0-e6cc-4204-8faa-becd9ec407e6", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-provider", + "targets": [ + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cd46f9d7-156e-4930-9694-645d6988fc3c", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "ebee4d22-84b6-451d-9a62-0dfc7999e7c0", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=FilesystemMetadataResolver" + }, { + "id": "ca977b80-c080-4ca4-ace8-7428f293c79b", + "comment": "", + "command": "type", + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "FSMR" + }, { + "id": "3e9efc71-b8e5-4d0e-99f1-5605f0984768", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(1) .info-icon path", + "targets": [ + ["css=.mb-3:nth-child(1) .info-icon path", "css:finder"] + ], + "value": "" + }, { + "id": "2a2271ae-e8c5-4d03-adf9-63a271831418", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Metadata Provider Name (for display on the Dashboard only)" + }, { + "id": "c3f51d32-f01e-4f4f-aec8-65d6c212096e", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "b83ea670-06b0-45e7-b4e3-af137de66d44", + "comment": "", + "command": "waitForElementVisible", + "target": "id=root_xmlId", + "targets": [], + "value": "30000" + }, { + "id": "76c3cf2f-2e79-4a14-88a9-82fa0909de4f", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "2" + }, { + "id": "869cd022-e518-4708-b314-daa54733a807", + "comment": "", + "command": "type", + "target": "id=root_metadataFile", + "targets": [ + ["id=root_metadataFile", "id"], + ["css=#root_metadataFile", "css:finder"], + ["xpath=//input[@id='root_metadataFile']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}/foo" + }, { + "id": "1086624e-fc87-470b-85bf-246fd3a42f64", + "comment": "", + "command": "mouseOver", + "target": "css=.d-block path", + "targets": [ + ["css=.d-block path", "css:finder"] + ], + "value": "" + }, { + "id": "be0a9921-3263-405c-a312-0e39fa53c316", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Initialize this resolver? In the case of Filesystem resolvers, this will cause the system to read the file and index the resolver." + }, { + "id": "3e0adde0-48e9-402d-952d-f682b5c68f93", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "d910ef5c-1e0f-48b8-bfbb-3dc0f2e65864", + "comment": "", + "command": "mouseOver", + "target": "css=.ms-2:nth-child(2) > path", + "targets": [ + ["css=.ms-2:nth-child(2) > path", "css:finder"] + ], + "value": "" + }, { + "id": "596d3f35-eb2c-4b8b-a99a-7f92f5441361", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "A factor applied to the initially determined refresh time in order to determine the next refresh time (typically to ensure refresh takes place prior to the metadata's expiration). Attempts to refresh metadata will generally begin around the product of this number and the maximum refresh delay." + }, { + "id": "33fff05f-db8e-495a-89b4-05fbb6de1062", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "806fe667-1f0a-41be-9f67-e05613a54304", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "cf2d85ab-412e-4cc8-824c-214e5bed17f1", + "comment": "", + "command": "waitForElementPresent", + "target": "linkText=FSMR", + "targets": [ + ["linkText=FBHMR", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'FBHMR')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/b33533c3-dd67-418a-b387-188045e2f821/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'FBHMR')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "e7b255a9-e86c-41a9-aff8-e72088f7f19c", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5ab84f87-6038-4e5e-8c1e-f4caad237004", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-provider", + "targets": [ + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f8654e3e-7bc2-4fde-8471-0b979916ba3e", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "d7378c6c-85c6-4c04-8793-a7a7bcba9afa", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=LocalDynamicMetadataResolver" + }, { + "id": "83a312ec-7e52-427d-8d1f-f1adc569a288", + "comment": "", + "command": "type", + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "LDMR" + }, { + "id": "3982eb88-4841-4bbc-929b-a5905c06e981", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "0b590f05-e52c-44a6-af23-5b2f46a10663", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "3" + }, { + "id": "873f31c3-3488-452b-bf9d-db3cfdaacb6b", + "comment": "", + "command": "type", + "target": "id=root_sourceDirectory", + "targets": [ + ["id=root_sourceDirectory", "id"], + ["css=#root_sourceDirectory", "css:finder"], + ["xpath=//input[@id='root_sourceDirectory']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "%{idp.home}" + }, { + "id": "cc967bcc-786d-4fa3-a94e-d4571597a3dd", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(2) .btn path", + "targets": [ + ["css=.mb-3:nth-child(2) .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "0a95e107-a515-46fe-80be-a4a102be8b95", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Convenience mechanism for wiring a FilesystemLoadSaveManager, loading from the specified source directory in the local filesystem. This attribute will be ignored if sourceManagerRef is also specified. Either this attribute or sourceManagerRef is required." + }, { + "id": "f5837e71-6c43-449e-8580-ee1ace17da5e", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "718a6f12-5933-4a38-a84f-c9061d238656", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(2) path", + "targets": [ + ["css=.row:nth-child(2) path", "css:finder"] + ], + "value": "" + }, { + "id": "927b5586-bea4-4ac5-a15b-8239540813e3", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The minimum duration for which metadata will be cached before it is refreshed." + }, { + "id": "6afe9417-450d-4820-8ed4-300188f38196", + "comment": "", + "command": "mouseOut", + "target": "css=.row:nth-child(2) path", + "targets": [], + "value": "" + }, { + "id": "da0ce3d8-75e6-4b84-b3a7-8b423399044e", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "b00df7f8-aa3c-4d5d-a518-61e822e1aece", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "5f3a17b8-9ab0-43b9-a6e9-47dfc036760a", + "comment": "", + "command": "mouseOver", + "target": "css=.d-block path", + "targets": [ + ["css=.d-block path", "css:finder"] + ], + "value": "" + }, { + "id": "4ce1c46e-ebde-4444-a539-97c9697c04f1", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Flag indicating whether idle metadata should be removed." + }, { + "id": "1a2a4e97-e088-445f-af42-b918e6705d83", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "997ea47d-d04e-4f9b-80a8-de6f891bd112", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "48022847-6110-435c-9bcb-b99f6f510c06", + "comment": "", + "command": "waitForElementPresent", + "target": "linkText=LDMR", + "targets": [ + ["linkText=FBHMR", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'FBHMR')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/b33533c3-dd67-418a-b387-188045e2f821/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'FBHMR')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "2e40dcab-b51f-4cc6-94e7-fa4de7bc59b9", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "949ba487-777e-49d3-ab7c-9d922c69583b", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-provider", + "targets": [ + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "139a8974-e20a-40ed-b09c-5fbf7c045cb7", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "ca32e1ac-1b14-4511-8ee1-3786d9d54908", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=DynamicHttpMetadataResolver" + }, { + "id": "f22135c5-c05b-4f03-8f75-75a818048264", + "comment": "", + "command": "type", + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "DHMR" + }, { + "id": "72d3d8ee-1c0e-4886-8a04-b696acd55ba9", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "7b4daefd-0731-4a52-b743-f18ec09de8c7", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "4" + }, { + "id": "85a6208a-fa62-40df-90ef-40e6169dbe47", + "comment": "", + "command": "select", + "target": "id=root_metadataRequestURLConstructionScheme_@type", + "targets": [ + ["id=root_metadataRequestURLConstructionScheme_@type", "id"], + ["css=#root_metadataRequestURLConstructionScheme_\\@type", "css:finder"], + ["xpath=//select[@id='root_metadataRequestURLConstructionScheme_@type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "label=Regex" + }, { + "id": "a6f1b350-eaa3-4748-8eb8-34ecac96ef01", + "comment": "", + "command": "type", + "target": "id=root_metadataRequestURLConstructionScheme_content", + "targets": [ + ["id=root_metadataRequestURLConstructionScheme_content", "id"], + ["css=#root_metadataRequestURLConstructionScheme_content", "css:finder"], + ["xpath=//input[@id='root_metadataRequestURLConstructionScheme_content']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div[2]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/input", "xpath:position"] + ], + "value": "foo" + }, { + "id": "93a5bbcd-9ee1-4fbc-9fd0-8ce2654edc8b", + "comment": "", + "command": "type", + "target": "id=root_metadataRequestURLConstructionScheme_match", + "targets": [ + ["id=root_metadataRequestURLConstructionScheme_match", "id"], + ["css=#root_metadataRequestURLConstructionScheme_match", "css:finder"], + ["xpath=//input[@id='root_metadataRequestURLConstructionScheme_match']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[3]/div[2]/div/div/div[3]/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div/div/input", "xpath:position"] + ], + "value": "unicon.*" + }, { + "id": "b0bbc709-2c6a-4600-8eac-d3b4182b3bb8", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(3) > .col-12 > .mb-3 .btn > .svg-inline--fa", + "targets": [ + ["css=.row:nth-child(3) > .col-12 > .mb-3 .btn > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "bafeaf78-91f6-496c-a199-52f2fb3681fe", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "A regular expression against which the entityID is evaluated." + }, { + "id": "36549098-a4b0-4660-a913-9aeb0ac83996", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "bdfb17e5-a4c9-408b-858b-7e2fddd7c350", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(2) path", + "targets": [ + ["css=.row:nth-child(2) path", "css:finder"] + ], + "value": "" + }, { + "id": "16cee316-9f39-481d-99be-34b61e0ed010", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The minimum duration for which metadata will be cached before it is refreshed." + }, { + "id": "687d2359-86f5-45de-bbfd-6557f62fd6d1", + "comment": "", + "command": "mouseOut", + "target": "css=.row:nth-child(2) path", + "targets": [], + "value": "" + }, { + "id": "fba778ef-2d9a-4fe9-9e6a-291560e3d807", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "86512870-b695-44b6-a112-ea60375586f4", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "8f77dc16-2b54-46d7-b6bd-bf6fd046e8b6", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(8) .svg-inline--fa", + "targets": [ + ["css=.row:nth-child(8) .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "3fd29e97-1178-4bb5-9e76-22e89bca717c", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Flag indicating whether the system should initialize from the persistent cache in the background. Initializing from the cache in the background will improve IdP startup times." + }, { + "id": "d1ee0afc-651b-4da5-bd99-eac47bbceb78", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "aea0e033-111e-4a5d-8038-ec222786a695", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(4) .svg-inline--fa:nth-child(2)", + "targets": [ + ["css=.row:nth-child(4) .svg-inline--fa:nth-child(2)", "css:finder"] + ], + "value": "" + }, { + "id": "80e0d456-3951-4858-8423-7e04d6debb96", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Controls whether to keep entities descriptors that contain no entity descriptors. Note: If this attribute is set to false, the resulting output may not be schema-valid since an element must include at least one child element, either an element or an element." + }, { + "id": "148a84ef-0353-425d-9a63-79ccaa01478d", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "a4dea76b-c360-4093-badc-75920e2f4f77", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "3e26de95-6680-4b4e-af58-1f03b73feabc", + "comment": "", + "command": "waitForElementPresent", + "target": "linkText=DHMR", + "targets": [ + ["linkText=FBHMR", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'FBHMR')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/b33533c3-dd67-418a-b387-188045e2f821/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'FBHMR')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "a43927f1-4fbb-4963-b0c8-692422473e74", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [ + ["id=metadata-nav-dropdown-toggle", "id"], + ["css=#metadata-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='metadata-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'Add New')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e0f16faa-8a59-47d6-882e-be0641aeea24", + "comment": "", + "command": "click", + "target": "id=metadata-nav-dropdown-provider", + "targets": [ + ["id=metadata-nav-dropdown-provider", "id"], + ["linkText=Add a new metadata provider", "linkText"], + ["css=#metadata-nav-dropdown-provider", "css:finder"], + ["xpath=//a[contains(text(),'Add a new metadata provider')]", "xpath:link"], + ["xpath=//a[@id='metadata-nav-dropdown-provider']", "xpath:attributes"], + ["xpath=//div[@id='metadata-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/new')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Add a new metadata provider')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b2e14d51-46d1-4ab6-963e-6783a7dc647f", + "comment": "", + "command": "waitForElementEditable", + "target": "name=type", + "targets": [], + "value": "30000" + }, { + "id": "b87c519c-2b8a-416f-aede-e982badbfd9c", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [], + "value": "label=ExternalMetadataResolver" + }, { + "id": "0e186c0d-53cc-432c-b12d-28dd6ed7c3d4", + "comment": "", + "command": "type", + "target": "name=name", + "targets": [ + ["name=name", "name"], + ["css=.form-control", "css:finder"], + ["xpath=//input[@name='name']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/form/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "ExMR" + }, { + "id": "bfee0b94-d6aa-4623-81c5-d9241794e5f1", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "2c2c7589-3d4c-4db1-a5fc-d8e66e0b8831", + "comment": "", + "command": "type", + "target": "id=root_xmlId", + "targets": [ + ["id=root_xmlId", "id"], + ["css=#root_xmlId", "css:finder"], + ["xpath=//input[@id='root_xmlId']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//input", "xpath:position"] + ], + "value": "5" + }, { + "id": "63444e5f-23c1-4da3-a5ba-e2ef8ad7b869", + "comment": "", + "command": "type", + "target": "id=root_description", + "targets": [ + ["id=root_description", "id"], + ["css=#root_description", "css:finder"], + ["xpath=//textarea[@id='root_description']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div[2]/div/div/form/div/div/div/div/div[2]/div[2]/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "foo" + }, { + "id": "52604851-991e-4055-b926-21a8eae2d293", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3 > div > .form-label > .btn path", + "targets": [ + ["css=.mb-3 > div > .form-label > .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "0c41fa31-f8ce-4247-8384-5ffe9dbb2a96", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "A brief description of the purpose of this filter." + }, { + "id": "3252a66e-f891-479e-8a6a-53460b3af55c", + "comment": "", + "command": "click", + "target": "css=.next", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "dfb684d2-91d6-452f-ad3a-5072c318deb9", + "comment": "", + "command": "click", + "target": "css=.save", + "targets": [ + ["css=.nav-link", "css:finder"], + ["xpath=(//button[@type='button'])[5]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/nav/ul/li[2]/button", "xpath:idRelative"], + ["xpath=//li[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "3c17b8c4-b76b-44d9-9240-90753ded5476", + "comment": "", + "command": "waitForElementPresent", + "target": "linkText=ExMR", + "targets": [ + ["linkText=FBHMR", "linkText"], + ["css=.align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'FBHMR')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/b33533c3-dd67-418a-b387-188045e2f821/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'FBHMR')]", "xpath:innerText"] + ], + "value": "30000" + }, { + "id": "fe1c0584-e64f-478b-a9ba-5197b7c1fff7", + "comment": "", + "command": "click", + "target": "linkText=FBHMR", + "targets": [ + ["linkText=FBHMR", "linkText"], + ["css=tr:nth-child(1) a", "css:finder"], + ["xpath=//a[contains(text(),'FBHMR')]", "xpath:link"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/div/div/table/tbody/tr/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/69410b01-394d-428c-b164-ae0ecc277bf9/configuration/options')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'FBHMR')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cfb977fd-934b-4a2d-94b9-3e1fddc9d86f", + "comment": "", + "command": "click", + "target": "css=.btn:nth-child(2)", + "targets": [ + ["css=.btn:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[6]", "xpath:attributes"], + ["xpath=//div[@id='navigation']/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,' Filters')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3f1b1b9c-ac27-4a85-89f5-1edd350b134b", + "comment": "", + "command": "click", + "target": "linkText=Add Filter", + "targets": [ + ["linkText=Add Filter", "linkText"], + ["css=#filters .btn", "css:finder"], + ["xpath=//div[@id='filters']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/provider/69410b01-394d-428c-b164-ae0ecc277bf9/filter/new')]", "xpath:href"], + ["xpath=//div[3]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,' Add Filter')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7fa035f2-c14b-4452-8437-f15901428d76", + "comment": "", + "command": "mouseOver", + "target": "css=.fa-circle-info > path", + "targets": [ + ["css=.fa-circle-info > path", "css:finder"] + ], + "value": "" + }, { + "id": "1b66bf16-76ba-48db-a1b8-a230198ae4a2", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The precise behavior of any element is controlled by the xsi:type attribute." + }, { + "id": "e4442dad-6000-49dd-96ca-85ea2a49e805", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "6f9ae687-770a-4932-bdc9-a33706a698b7", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [ + ["name=type", "name"], + ["css=.form-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "label=EntityAttributes" + }, { + "id": "e2b1a582-a3ce-4adb-b10c-0804f44a56ae", + "comment": "", + "command": "mouseOver", + "target": "css=.justify-content-start > .btn path", + "targets": [ + ["css=.justify-content-start > .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "c42fe40a-496c-491b-834e-694181da46d1", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Indicates the type of search to be performed." + }, { + "id": "e4596fdd-7ffc-4636-95d3-870d6bd51f20", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(2)", + "targets": [ + ["css=.nav-link:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[10]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button[2]", "xpath:idRelative"], + ["xpath=//nav/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Options')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "583b61c9-b021-452b-b488-1faf2be311b6", + "comment": "", + "command": "mouseOver", + "target": "css=.row:nth-child(6) .svg-inline--fa:nth-child(2)", + "targets": [ + ["css=.row:nth-child(6) .svg-inline--fa:nth-child(2)", "css:finder"] + ], + "value": "" + }, { + "id": "112094e0-5983-4de2-80c9-b667a85c0334", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Whether to turn off encryption of the response." + }, { + "id": "62691575-441e-4251-afd8-658fe8763578", + "comment": "", + "command": "select", + "target": "name=type", + "targets": [ + ["name=type", "name"], + ["css=.form-select", "css:finder"], + ["xpath=//select[@name='type']", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div/div/div/div/form/div/select", "xpath:idRelative"], + ["xpath=//select", "xpath:position"] + ], + "value": "label=NameIDFormat" + }, { + "id": "b358a7c0-87a5-4b74-8013-c0ab379278c2", + "comment": "", + "command": "mouseOver", + "target": "css=.ms-2 > path", + "targets": [ + ["css=.ms-2 > path", "css:finder"] + ], + "value": "" + }, { + "id": "5444d5e6-b455-4afa-8154-036c6e55303e", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Whether to remove any existing formats from a role if any are added by the filter (unmodified roles will be untouched regardless of this setting)" + }, { + "id": "59d268fc-f9ba-4c9c-b412-f17ca72b67d1", + "comment": "", + "command": "click", + "target": "css=.nav-link:nth-child(1)", + "targets": [ + ["css=.nav-link:nth-child(1)", "css:finder"], + ["xpath=(//button[@type='button'])[9]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div/nav/button", "xpath:idRelative"], + ["xpath=//div[2]/div/nav/button", "xpath:position"], + ["xpath=//button[contains(.,'Filter Target')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8657a3bf-3547-456a-8802-a23eaf657e7c", + "comment": "", + "command": "mouseOver", + "target": "css=.btn-text:nth-child(1) > .svg-inline--fa", + "targets": [ + ["css=.btn-text:nth-child(1) > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "424c3f2e-c1ed-4895-ad42-78953ea3bf39", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The value used to search against, such as a regex pattern or entityID to match against." + }, { + "id": "6dc07848-bf6c-4468-8cb9-6434fb61098c", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [], + "value": "" + }, { + "id": "98b5db64-05cd-498e-a644-df6d2c8492a6", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(2)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f65720ad-5b7b-4193-a8d6-3ca976d2c976", + "comment": "", + "command": "mouseOver", + "target": "css=.btn-text:nth-child(1) path", + "targets": [ + ["css=.btn-text:nth-child(1) path", "css:finder"] + ], + "value": "" + }, { + "id": "46e83d10-00d0-4535-8387-2d84e1559ec2", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The value used to search against, such as a regex pattern or entityID to match against." + }, { + "id": "0067cff3-9879-4a44-a6a1-70711255dc7c", + "comment": "", + "command": "click", + "target": "id=dropdown-label.filter-target-type", + "targets": [], + "value": "" + }, { + "id": "96873967-eccb-48a1-9dd2-0d189919789c", + "comment": "", + "command": "click", + "target": "css=.show > .dropdown-item:nth-child(3)", + "targets": [ + ["css=.show > .dropdown-item:nth-child(2)", "css:finder"], + ["xpath=(//button[@type='button'])[15]", "xpath:attributes"], + ["xpath=//div[@id='root']/div/main/div/section/div[2]/div/div[2]/div[2]/div[2]/div/form/div/div/div/div[3]/div/div/div/fieldset/div/div/div/div/div/button[2]", "xpath:idRelative"], + ["xpath=//fieldset/div/div/div/div/div/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'Regex')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "295c441f-78c8-4949-9c0c-c9c6202c8943", + "comment": "", + "command": "mouseOver", + "target": "css=.btn-text:nth-child(1) path", + "targets": [ + ["css=.btn-text:nth-child(1) path", "css:finder"] + ], + "value": "" + }, { + "id": "7544cfe4-4314-4182-8518-6db7f951ca93", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "The value used to search against, such as a regex pattern or entityID to match against." + }, { + "id": "cbfaac4f-35af-4014-b0a9-0748c9ae78f0", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "7fe511ed-178f-4922-8539-ea5beaf82ad2", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }] + }], + "suites": [{ + "id": "d2caeac4-7520-4e3c-96b1-840610b6983c", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["841ade0e-83bd-4a4b-94f2-de6bd5c536b2"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/integration/resources/SHIBUI-1674-3.side b/backend/src/integration/resources/SHIBUI-1674-3.side new file mode 100644 index 000000000..fa0a6f0cd --- /dev/null +++ b/backend/src/integration/resources/SHIBUI-1674-3.side @@ -0,0 +1,443 @@ +{ + "id": "1b31a551-eb09-4bd4-8db9-694bf1539a46", + "version": "2.0", + "name": "SHIBUI-1674-3", + "url": "http://localhost:10101", + "tests": [{ + "id": "841ade0e-83bd-4a4b-94f2-de6bd5c536b2", + "name": "SHIBUI-1674-3", + "commands": [{ + "id": "d6b23986-6d14-4b10-be7b-a7e6f576e3b2", + "comment": "", + "command": "open", + "target": "/login", + "targets": [], + "value": "" + }, { + "id": "f77ecd77-01c2-4463-944e-1a69600f5297", + "comment": "", + "command": "type", + "target": "name=username", + "targets": [ + ["name=username", "name"], + ["css=tr:nth-child(1) input", "css:finder"], + ["xpath=//input[@name='username']", "xpath:attributes"], + ["xpath=//input", "xpath:position"] + ], + "value": "admin" + }, { + "id": "c9bf0a22-faa9-494c-b2ed-6c9653248551", + "comment": "", + "command": "type", + "target": "name=password", + "targets": [ + ["name=password", "name"], + ["css=tr:nth-child(2) input", "css:finder"], + ["xpath=//input[@name='password']", "xpath:attributes"], + ["xpath=//tr[2]/td[2]/input", "xpath:position"] + ], + "value": "adminpass" + }, { + "id": "7ab1d854-3582-4101-bd19-f94b8f438090", + "comment": "", + "command": "sendKeys", + "target": "name=password", + "targets": [ + ["name=password", "name"], + ["css=tr:nth-child(2) input", "css:finder"], + ["xpath=//input[@name='password']", "xpath:attributes"], + ["xpath=//tr[2]/td[2]/input", "xpath:position"] + ], + "value": "${KEY_ENTER}" + }, { + "id": "4059cae7-b9f9-49d0-a213-343bcaba66d1", + "comment": "", + "command": "waitForElementVisible", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "f03af8d5-5875-4a2c-b93a-c3ddcbd4b16a", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "081f495b-4d84-4758-824c-1e85b6311e7f", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }, { + "id": "9e912dd5-6ace-45be-bafd-2d1655906575", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "3bb52950-667c-4852-a98f-6a6fb5632ba5", + "comment": "", + "command": "waitForElementEditable", + "target": "id=metadata-nav-dropdown-toggle", + "targets": [], + "value": "30000" + }, { + "id": "36f741ba-efc6-4837-b4ee-6afaf64eaa9a", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [ + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c1ece675-f7dd-467b-a559-5abf32c5bbe2", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-attr", + "targets": [ + ["id=advanced-nav-dropdown-attr", "id"], + ["linkText=Custom entity attributes", "linkText"], + ["css=#advanced-nav-dropdown-attr", "css:finder"], + ["xpath=//a[contains(text(),'Custom entity attributes')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-attr']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes')]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'Custom entity attributes')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b2d7669c-99d8-493c-8fa9-588191d0b7dc", + "comment": "", + "command": "click", + "target": "linkText=Add new attribute", + "targets": [ + ["linkText=Add new attribute", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add new attribute')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6a47d0aa-0afe-4e61-afbf-44a56507a2e8", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(1) > div > div > .form-label > .btn path", + "targets": [ + ["css=.mb-3:nth-child(1) > div > div > .form-label > .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "f0c42874-f4d4-4bd6-ba45-d5456555df77", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Name of the attribute that the service provider uses and requires from the identity provider. It corresponds to the element in the SAML assertion." + }, { + "id": "462beca1-71e3-4519-a478-f4e66824c3cc", + "comment": "", + "command": "mouseOut", + "target": "css=.mb-3:nth-child(1) > div > div > .form-label > .btn path", + "targets": [ + ["css=.mb-3:nth-child(1) > div > div > .form-label > .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "1d0954f7-b5f4-4c6d-9e4f-90d1557ff57f", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "0500c6db-2e9a-41be-a4f8-7ca36e3a2949", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "d316301e-1e75-4c95-bc8a-efa5575b3cfb", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3 > .form-label > .btn > .svg-inline--fa", + "targets": [ + ["css=.mb-3 > .form-label > .btn > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "587a92b2-743d-4c22-8788-103995b8a593", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Data type of the attribute such as boolean or string." + }, { + "id": "f2335699-a48b-4da0-906a-6b41fac18795", + "comment": "", + "command": "mouseOut", + "target": "css=.mb-3 > .form-label > .btn > .svg-inline--fa", + "targets": [], + "value": "" + }, { + "id": "15ab5915-5ee7-4942-9417-382d7171872f", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "37cdbafc-1379-4338-bce0-cb9bdfedc31f", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "9d4d25d7-3f22-4ca9-976b-fde51c951f44", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(3) .btn > .svg-inline--fa", + "targets": [ + ["css=.mb-3:nth-child(3) .btn > .svg-inline--fa", "css:finder"] + ], + "value": "" + }, { + "id": "b1c748cd-a506-4d83-be8b-d4a768b815d8", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "A descriptive or human-friendly name for users of the Shibboleth IDP UI." + }, { + "id": "37ac1e21-a74a-48b8-a8da-5639d4c3daf0", + "comment": "", + "command": "mouseOut", + "target": "css=.mb-3:nth-child(3) .btn > .svg-inline--fa", + "targets": [], + "value": "" + }, { + "id": "a5db41a9-79cb-4ac5-b637-15ab28b661a2", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "2d273ecb-241c-4cdd-b7a9-202a9ca0241d", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "6b365142-29d2-4d6f-a3ff-bcc06f8102ac", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(4) .btn path", + "targets": [ + ["css=.mb-3:nth-child(4) .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "cc340bf7-11bd-4d80-9878-852d06e0a6a0", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Indicates how to interpret the attribute name. It corresponds to the element in the SAML assertion. This is normally a uri or urn." + }, { + "id": "bb6a3d64-d0a9-43ab-b60c-20dab1f04e15", + "comment": "", + "command": "mouseOut", + "target": "css=.mb-3:nth-child(4) .btn path", + "targets": [], + "value": "" + }, { + "id": "5ed8705f-fc06-43c4-8fb0-2200f2b17417", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "ad456296-65ae-4eb3-ac6e-5d806fd8a9ba", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "4d5c9b81-fa8b-4202-9617-9e66b11c6453", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(5) .btn path", + "targets": [ + ["css=.mb-3:nth-child(5) .btn path", "css:finder"] + ], + "value": "" + }, { + "id": "e7f5bec5-f0a7-464c-88e0-762dd3fd814d", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Provides a human readable value that identifies the subject. This value is not guaranteed to be unique and is designed to be used only for display purposes." + }, { + "id": "535899ed-dfc1-4e6d-98bf-1d798eba2653", + "comment": "", + "command": "mouseOut", + "target": "css=.mb-3:nth-child(5) .btn path", + "targets": [], + "value": "" + }, { + "id": "dd9c55ae-367a-4dc6-acd3-9a4fc70af3c8", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "7f273e47-802d-42ce-9290-3ae6768a3835", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "5e69982a-5611-4276-9145-b2ae74cafc5e", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3:nth-child(6) path", + "targets": [ + ["css=.mb-3:nth-child(6) path", "css:finder"] + ], + "value": "" + }, { + "id": "e40ca8bd-05f0-4266-85cd-ddc6f072b268", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "Defines help text used in the Shibboleth IDP UI when adding the attribute." + }, { + "id": "1903d80f-cd05-4b27-a8ee-7450f6ddfb1f", + "comment": "", + "command": "mouseOut", + "target": "css=.mb-3:nth-child(6) path", + "targets": [], + "value": "" + }, { + "id": "8d9f307d-d310-4fec-91d8-2d228bf07328", + "comment": "", + "command": "click", + "target": "css=body", + "targets": [], + "value": "" + }, { + "id": "a20bb255-c02f-46a2-a117-365506bf9820", + "comment": "", + "command": "pause", + "target": "1000", + "targets": [], + "value": "" + }, { + "id": "ff071936-517f-497a-bc8a-ffcc0244a860", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-toggle", + "targets": [ + ["id=advanced-nav-dropdown-toggle", "id"], + ["css=#advanced-nav-dropdown-toggle", "css:finder"], + ["xpath=//button[@id='advanced-nav-dropdown-toggle']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'Advanced')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "bf20a8b1-5efa-44b6-bae6-2f0c44216c5a", + "comment": "", + "command": "click", + "target": "id=advanced-nav-dropdown-bundles", + "targets": [ + ["id=advanced-nav-dropdown-bundles", "id"], + ["linkText=Attribute bundles", "linkText"], + ["css=#advanced-nav-dropdown-bundles", "css:finder"], + ["xpath=//a[contains(text(),'Attribute bundles')]", "xpath:link"], + ["xpath=//a[@id='advanced-nav-dropdown-bundles']", "xpath:attributes"], + ["xpath=//div[@id='advanced-nav-dropdown']/div/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles')]", "xpath:href"], + ["xpath=//a[2]", "xpath:position"], + ["xpath=//a[contains(.,'Attribute bundles')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a076e422-2bc2-4e73-b976-018306d00d42", + "comment": "", + "command": "click", + "target": "linkText=Add bundle", + "targets": [ + ["linkText=Add bundle", "linkText"], + ["css=.btn-success", "css:finder"], + ["xpath=//div[@id='root']/div/main/div/div/section/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/metadata/attributes/bundles/new')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'  Add bundle')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ca5dd037-f651-49bc-ae8e-2c4892a8dd8a", + "comment": "", + "command": "mouseOver", + "target": "css=.fa-circle-info", + "targets": [ + ["css=.fa-circle-info", "css:finder"] + ], + "value": "" + }, { + "id": "189111fe-dec8-4858-87dd-c2ae3b0d3318", + "comment": "", + "command": "assertText", + "target": "css=div[role=\"tooltip\"]", + "targets": [], + "value": "A user friendly name to identify the bundle" + }, { + "id": "18eb0ada-bc95-4bad-b891-b5c952ce25d1", + "comment": "", + "command": "open", + "target": "/api/heheheheheheheWipeout", + "targets": [], + "value": "" + }, { + "id": "de808d8a-e49a-4c10-99fb-25e28127437d", + "comment": "", + "command": "assertText", + "target": "css=body", + "targets": [], + "value": "yes, you did it" + }] + }], + "suites": [{ + "id": "d2caeac4-7520-4e3c-96b1-840610b6983c", + "name": "Default Suite", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["841ade0e-83bd-4a4b-94f2-de6bd5c536b2"] + }], + "urls": ["http://localhost:10101/"], + "plugins": [] +} \ No newline at end of file diff --git a/backend/src/main/resources/external.schema.json b/backend/src/main/resources/external.schema.json index daa8c4503..317d5ff7d 100644 --- a/backend/src/main/resources/external.schema.json +++ b/backend/src/main/resources/external.schema.json @@ -9,7 +9,7 @@ "properties": { "name": { "title": "label.metadata-provider-name-dashboard-display-only", - "description": "tooltip.metadata-provider-name-dashboard-display-only", + "description": "tooltip.metadata-provider-name", "type": "string", "widget": { "id": "string", @@ -35,8 +35,8 @@ "default": false }, "description": { - "title": "label.description", - "description": "tooltip.description", + "title": "label.external-description", + "description": "tooltip.external-description", "type": "string" } } diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index ab537ed03..c225aa4c3 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -152,28 +152,28 @@ heading.shibboleth=Shibboleth label.source-configuration=Metadata Source Configuration label.provider-configuration=Metadata Provider Configuration label.entity-attribute-name=Custom Entity Attribute Name -tooltip.entity-attribute-name=Custom Entity Attribute Name +tooltip.entity-attribute-name=Name of the attribute that the service provider uses and requires from the identity provider. It corresponds to the element in the SAML assertion. label.entity-attribute-type=Attribute Type -tooltip.entity-attribute-type=Attribute Type +tooltip.entity-attribute-type=Data type of the attribute such as boolean or string. label.entity-attribute-help=Help Text -tooltip.entity-attribute-help=Help Text +tooltip.entity-attribute-help=Defines help text used in the Shibboleth IDP UI when adding the attribute. label.entity-attribute-default=Default Value -tooltip.entity-attribute-default=Default Value +tooltip.entity-attribute-default=The default value used when no value is provided. label.entity-attribute-list-options=List options -tooltip.entity-attribute-list-options=List options +tooltip.entity-attribute-list-options=A list of pre-defined selectable options for a user to select from in the Shibboleth IDP UI. label.entity-attribute-friendly-name=Friendly name -tooltip.entity-attribute-friendly-name=Friendly name +tooltip.entity-attribute-friendly-name=A descriptive or human-friendly name for users of the Shibboleth IDP UI. label.entity-attribute-attr-name=Attribute name -tooltip.entity-attribute-attr-name=This is normally a uri or urn +tooltip.entity-attribute-attr-name=Indicates how to interpret the attribute name. It corresponds to the element in the SAML assertion. This is normally a uri or urn. label.entity-attribute-display-name=Display name -tooltip.entity-attribute-display-name=Display name +tooltip.entity-attribute-display-name=Provides a human readable value that identifies the subject. This value is not guaranteed to be unique and is designed to be used only for display purposes. label.entity-attribute-persist-value=Persist Value label.entity-attribute-persist-type=Persist Type -tooltip.entity-attribute-persist-value=Persist Value +tooltip.entity-attribute-persist-value=The value that is persisted in the database. tooltip.entity-attribute-persist-type=Persist Type label.entity-attribute-invert=Invert -tooltip.entity-attribute-invert=Invert +tooltip.entity-attribute-invert=Whether to invert the boolean value (true means false, false means true). label.entity-attributes=Entity Attributes label.custom-entity-attributes=Custom Entity Attributes @@ -216,7 +216,7 @@ label.select-protocol=Select Protocol label.nameid-format=NameID Format label.nameid-formats=NameID Formats label.name-and-entity-id=Name and Entity ID -label.organization-information=SP/Organization Information +label.organization-information=Organization Information label.contact-information=Contact Information label.given-name=Given Name label.contact-type=Contact Type @@ -282,7 +282,7 @@ label.add-a-new-metadata-source=Add a new metadata source - Finish Summary label.name-and-entityid=Name and Entity ID. label.finish-summary-validation=Finished! label.select-entity-id-to-copy=Select the Entity ID to copy -label.metadata-source-name-dashboard-display-only=Metadata Source Name (Dashboard Display Only) +label.metadata-source-name-dashboard-display-only=Service Provider Name (Dashboard Display Only) label.new-entity-id=New Entity ID label.sections-to-copy=Sections to Copy? label.add-a-new-metadata-resolver=Add a new metadata source @@ -292,7 +292,7 @@ label.or=or label.name-and-upload-url=Name and Upload Url label.service-resolver-file=Select Provider Metadata File label.service-resolver-metadata-url=Service Provider Metadata URL -label.search-criteria-by=Search Criteria by { displayType } +label.search-criteria-by=The value used to search against, such as a regex pattern or entityID to match against. label.entity-ids-added=Entity Ids Added label.ui-mdui-info=User Interface / MDUI Information label.sp-sso-descriptor-info=SP SSO Descriptor Information @@ -418,6 +418,7 @@ label.dynamic-attributes=Dynamic Attributes label.metadata-filter-plugins=Metadata Filter Plugins label.advanced-settings=Advanced Settings label.edit-metadata-provider=Edit Metadata Provider +label.edit-metadata-source=Edit Metadata Source label.http-settings-advanced=Http Settings (Advanced) label.metadata-ui=User Interface / MDUI Information @@ -441,6 +442,7 @@ label.attribute-employeeNumber=employeeNumber label.force-authn=Force AuthN label.ignore-request-signatures=Ignore Request Signatures +label.dynamic-attributes=Dynamic Attributes label.min-cache-duration=Min Cache Duration label.max-cache-duration=Max Cache Duration label.max-idle-entity-data=Max Idle Entity Data @@ -468,14 +470,20 @@ label.nameid-formats-type=NameID Type label.select-filter-type=Select Filter Type label.admin=Admin +label.action-required=Action Required +label.user-access-request=User Access Request label.user-maintenance=User Maintenance label.user-id=UserId label.email=Email +label.role=Role label.delete=Delete? - -label.title=Title +label.delete-request=Delete Request +label.enable=Enable +label.disable=Disable label.enabled=Enabled label.disabled=Disabled +label.enable-metadata-sources=Enable Metadata Sources +label.title=Title label.author=Author label.creation-date=Creation Date label.order=Order @@ -502,7 +510,7 @@ label.source=Metadata Source label.provider=Metadata Provider label.url-validation-regex=URL validation regular expression -tooltip.url-validation-regex=URL validation regular expression +tooltip.url-validation-regex=URL validation regular expression. This is used by the Shibboleth IDP UI to restrict entities that may be targetted by this group and is added as form validation. label.bundle-name=Bundle name label.bundle-disp=Bundle - {name} @@ -545,6 +553,7 @@ message.uri-valid-format=URI must be valid format. message.id-unique=ID must be unique. message.name-unique=Service provider name must be unique. message.array-items-must-be-unique=Items in list must be unique. +message.real-number=Optional. If using a value, must be a real number between 0-1. message.valid-duration=Must be a valid duration. message.valid-name=No special characters or whitespace allowed. message.required=Missing required property. @@ -594,7 +603,9 @@ message.database-constraint=There was a database constraint problem processing t message.no-filters=No Filters message.no-filters-added=No filters have been added to this Metadata Provider - +message.user-request-received-title=User request received +message.user-request-received-body=Your request has been received and is being reviewed. You will be notified with access status. +message.filter-fail=A server error occured, and the filter failed to save. message.create-new-version-from-version=Create New Version from Previous Settings message.restoring-this-version-will-copy=Restoring this version will copy the Version ({ date }) configuration and create a new Version from the selected version settings. You can then edit the configuration before saving the new version. @@ -606,33 +617,36 @@ message.session-timeout-heading=Session timed out message.session-timeout-body=Your session has timed out. Please login again. message.session-timeout=An error has occurred while saving. Your session may have timed out. -tooltip.entity-id=Entity ID +tooltip.entity-id=An entityID is the SAML identifier that uniquely names a service provider. tooltip.service-provider-name=Service Provider Name (Dashboard Display Only) tooltip.force-authn=Disallows use (or reuse) of authentication results and login flows that don\u0027t provide a real-time proof of user presence in the login process tooltip.ignore-request-signatures=Whether to skip validation of signatures on requests when dealing with badly broken or incompetently operated services tooltip.service-provider-name-dashboard-display-only=Service Provider Name (Dashboard Display Only) tooltip.service-provider-entity-id=Service Provider Entity ID -tooltip.organization-name=Organization Name -tooltip.organization-display-name=Organization Display Name -tooltip.organization-url=Organization URL +tooltip.organization-name=Name of the organization standing up the entity. +tooltip.organization-display-name=Name of the organization standing up the entity to be used for display purposes. +tooltip.organization-url=URL of the organization standing up the entity. tooltip.name=Name tooltip.type=Type tooltip.email-address=Email Address -tooltip.assertion-consumer-service-location=Assertion Consumer Service Location -tooltip.assertion-consumer-service-location-binding=Assertion Consumer Service Location Binding -tooltip.mark-as-default=Mark as Default -tooltip.protocol-support-enumeration=Protocol Support Enumeration -tooltip.nameid-format=Content is name identifier format which is added to all the applicable roles of the entities which match any of the following or {{}}elements. -tooltip.enable-this-service-upon-saving=If checkbox is clicked, the metadata provider is enabled for integration with the IdP +tooltip.assertion-consumer-service-location=Path used to invoke handler (when appended to the base handlerURL). +tooltip.assertion-consumer-service-location-binding=The binding attribute of the element is a standard URI specified in the SAML 2.0 Binding specification. +tooltip.assertion-consumer-service-endpoints=An Assertion Consumer Service (or ACS) is SAML terminology for the location at a ServiceProvider that accepts messages (or SAML artifacts) for the purpose of establishing a session based on an assertion. +tooltip.mark-as-default=Whether to mark this endpoint as the default by setting the "isDefault" property. +tooltip.protocol-support-enumeration=This attribute contains a space-delimited collection of URIs that represent general classes of protocol support for the role in question. There are URIs defined by the various standards and profiles to represent the fact that an entity acting in a role "supports" a particular protocol family, such as SAML 2.0 or the Shibboleth profile of SAML 1.1. +tooltip.nameid-format=Contains all name identifiers which are added to all applicable roles of the entities that match any of the following or elements. +tooltip.enable-this-service-upon-saving=If checkbox is clicked, the metadata is enabled for integration with the IdP tooltip.is-there-a-x509-certificate=Is there a X509 Certificate? -tooltip.authentication-requests-signed=Authentication Requests Signed -tooltip.want-assertions-signed=Want Assertions Signed -tooltip.certificate-name=Certificate Name -tooltip.certificate-type=Certificate Type -tooltip.certificate=Certificate -tooltip.logout-endpoints=Logout Endpoints -tooltip.url=Logout Endpoints Url -tooltip.binding-type=Logout Endpoints Binding Type +tooltip.authentication-requests-signed=Whether to sign requests. Signing requests helps to verify that the request from the SP is authentic. +tooltip.want-assertions-signed=Whether to sign assertions. Element declares that the service provider wants the element to be digitally signed. +tooltip.certificate-name=Value used by the IDP UI to identify certificates. +tooltip.certificate-type=Describes the use to which the credential will be put (as defined by the SAML standard) +tooltip.certificate=A certificate containing a public key to use to require and verify an XML signature over the resource. +tooltip.logout-endpoints=If your SP supports SAML 2.0 Single Logout, you will need to include one or more endpoint elements in the metadata. +tooltip.logout-endpoints-url=The location of the handler (when combined with the base handlerURL). This is the location to which an IdP sends messages using whatever protocol and binding it shares with the SP. Each combination of SLO protocol and binding is installed at a unique location to improve efficiency. +tooltip.logout-endpoints-binding-type=Identifies the protocol binding supported by the handler. Bindings describe how the message is packaged by the IdP (or by the browser in some cases) for consumption by the handler. +tooltip.url=The location of the handler (when combined with the base handlerURL). This is the location to which an IdP sends messages using whatever protocol and binding it shares with the SP. Each combination of SLO protocol and binding is installed at a unique location to improve efficiency. +tooltip.binding-type=Identifies the protocol binding supported by the handler. Bindings describe how the message is packaged by the IdP (or by the browser in some cases) for consumption by the handler. tooltip.mdui-display-name=Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. tooltip.mdui-information-url=The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. tooltip.mdui-description=The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. @@ -640,21 +654,22 @@ tooltip.mdui-privacy-statement-url=The IdP Privacy Statement URL is a link to th tooltip.mdui-logo-url=The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. tooltip.mdui-logo-width=The logo should have a minimum width of 100 pixels tooltip.mdui-logo-height=The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) -tooltip.contact-name=Contact Name -tooltip.contact-type=Contact Type -tooltip.contact-email=Contact Email -tooltip.sign-assertion=Sign Assertion -tooltip.dont-sign-response=Don\u0027t Sign Response -tooltip.turn-off-encryption=Turn Off Encryption of Response -tooltip.usa-sha-algorithm=Use SHA1 Signing Algorithm -tooltip.authentication-methods-to-use=Authentication Methods to Use -tooltip.ignore-auth-method=Ignore any SP-Requested Authentication Method -tooltip.omit-not-before-condition=Omit Not Before Condition -tooltip.responder-id=ResponderId +tooltip.contact-name=The given name of the contact. +tooltip.contact-type=Type / role of the contact. +tooltip.contact-email=Email address of the contact. +tooltip.sign-assertion=Sign Assertion declares that the service provider wants the element to be digitally signed. +tooltip.dont-sign-response=Do not sign the full authentication response to the service provider. Enabling this property will reduce the size of the response to service providers who may have limitations to the size of the response. +tooltip.turn-off-encryption=Whether to turn off encryption of the response. +tooltip.usa-sha-algorithm=Whether to use the SHA1 Signing Algorithm. In cryptography, SHA-1 (Secure Hash Algorithm 1) is cryptographically broken but still widely used. It takes an input and produces a 160-bit (20-byte) hash value. +tooltip.authentication-methods-to-use=The method used to authenticate the subject. +tooltip.ignore-auth-method=Reject any AuthnReuests from this SP that contain an explicitly requested AuthnContext class +tooltip.omit-not-before-condition=Whether to include a NotBefore attribute in assertions. +tooltip.responder-id=Identifier of the selected SAML IdP entity. tooltip.instruction=Information icon +tooltip.x509-certificates=Add an X509 Certificate, a digital certificate that uses the widely accepted international X509 public key infrastructure (PKI) standard to verify that a public key belongs to the service identity contained within the certificate. tooltip.attribute-release-table=Attribute release table - select the attributes you want to release (default unchecked) tooltip.metadata-filter-name=Metadata Filter Name -tooltip.metadata-filter-type=Metadata Filter Type +tooltip.metadata-filter-type=The precise behavior of any element is controlled by the xsi:type attribute. tooltip.connection-request-timeout=The maximum amount of time to wait for a connection to be returned from the HTTP client\u0027s connection pool manager. Set to PT0S to disable. This attribute is incompatible with httpClientRef. tooltip.connection-timeout=The maximum amount of time to wait to establish a connection with the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. tooltip.socket-timeout=The maximum amount of time to wait between two consecutive packets while reading from the socket connected to the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. @@ -669,7 +684,7 @@ tooltip.http-max-cache-entries=The maximum number of responses written to cache. tooltip.max-cache-entry-size=The maximum response body size that may be cached, in bytes. This attribute is incompatible with httpClientRef. tooltip.metadata-provider-name=Metadata Provider Name (for display on the Dashboard only) -tooltip.metadata-provider-type=Metadata Provider Type +tooltip.metadata-provider-type=The precise behavior of any element is controlled by the xsi:type attribute. This specifies the exact type of provider to use. tooltip.xml-id=Identifier for logging, identification for command line reload, etc. tooltip.metadata-url=The URL that the metadata is served from. tooltip.metadata-file=The absolute path to the local metadata file to be loaded. @@ -680,7 +695,7 @@ tooltip.require-valid-metadata=Whether candidate metadata found by the resolver tooltip.fail-fast-init=Whether to fail initialization of the underlying MetadataResolverService (and possibly the IdP as a whole) if the initialization of a metadata provider fails. When false, the IdP may start, and will continue to attempt to reload valid metadata if configured to do so, but operations that require valid metadata will fail until it does. tooltip.use-default-predicate-reg=Flag which determines whether the default CriterionPredicateRegistry will be used if a custom one is not supplied explicitly. tooltip.satisfy-any-predicates=Flag which determines whether predicates used in filtering are connected by a logical 'OR' (true) or by logical 'AND' (false). -tooltip.enable-provider-upon-saving=If checkbox is clicked, the metadata provider is enabled for integration with the IdP +tooltip.enable-provider-upon-saving=If checkbox is clicked, the metadata provider is enabled for integration with the IdP. tooltip.max-validity-interval=Defines the window within which the metadata is valid. tooltip.require-signed-root=If true, this fails to load metadata with no signature on the root XML element. @@ -695,24 +710,24 @@ tooltip.refresh-delay-factor=A factor applied to the initially determined refres tooltip.resolve-via-predicates-only=Flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection, when an entityID input criterion is not supplied. tooltip.expiration-warning-threshold=For each attempted metadata refresh (whether or not fresh metadata is obtained), if requireValidMetadata is true, and there is a validUntil XML attribute on the document root element, and the difference between validUntil and the current time is less than expirationWarningThreshold, the system logs a warning about the impending expiration. -tooltip.filter-name=Filter Name -tooltip.enable-filter=Enable Filter? -tooltip.enable-service=Enable Service? - +tooltip.filter-name=A name given to this filter to identify it within the Shibboleth IDP UI (used for display purposes only). +tooltip.enable-filter=If checkbox is clicked, the metadata filter is enabled for integration with the IdP. +tooltip.enable-service=A boolean value representing whether or not this metadata should be enabled within the Shibboleth IDP UI. +tooltip.search-by=Indicates the type of search to be performed. tooltip.min-cache-duration=The minimum duration for which metadata will be cached before it is refreshed. tooltip.max-cache-duration=The maximum duration for which metadata will be cached before it is refreshed. tooltip.max-idle-entity-data=The maximum duration for which metadata will be allowed to be idle (no requests for it) before it is removed from the cache. tooltip.cleanup-task-interval=The interval at which the internal cleanup task should run. This task performs background maintenance tasks, such as the removal of expired and idle metadata. tooltip.persistent-cache-manager-directory=The optional manager for the persistent cache store for resolved metadata. On metadata provider initialization, data present in the persistent cache will be loaded to memory, effectively restoring the state of the provider as closely as possible to that which existed before the previous shutdown. Each individual cache entry will only be loaded if 1) the entry is still valid as determined by the internal provider logic, and 2) the entry passes the (optional) predicate supplied via initializationFromCachePredicateRef. -tooltip.initialize-from-persistent-cache-in-background=Flag indicating whether should initialize from the persistent cache in the background. Initializing from the cache in the background will improve IdP startup times. +tooltip.initialize-from-persistent-cache-in-background=Flag indicating whether the system should initialize from the persistent cache in the background. Initializing from the cache in the background will improve IdP startup times. tooltip.background-init-from-cache-delay=The delay after which to schedule the background initialization from the persistent cache when initializeFromPersistentCacheInBackground=true. tooltip.source-directory=Convenience mechanism for wiring a FilesystemLoadSaveManager, loading from the specified source directory in the local filesystem. This attribute will be ignored if sourceManagerRef is also specified. Either this attribute or sourceManagerRef is required. tooltip.remove-idle-entity-data=Flag indicating whether idle metadata should be removed. tooltip.do-resolver-initialization=Initialize this resolver? In the case of Filesystem resolvers, this will cause the system to read the file and index the resolver. -tooltip.md-request-type=Options are 1) Metadata Query Protocol, 2) Regex. -tooltip.md-request-value=Content of the element. +tooltip.md-request-type=Constructs the metadata request URL based on 1) Metadata Query Protocol, or 2) Regex (a regular expression). +tooltip.md-request-value=Content of the element based on the Metadata Request URL Construction Type. tooltip.transform-ref=A reference to a transform function for the entityID. If used, the child element must be empty. tooltip.encoding-style=Determines whether and how the entityID value will be URL encoded prior to replacement. Allowed values are: 1) "none" - no encoding is performed, 2) "form" - encoded using URL form parameter encoding (for query parameters), 3) "path" - encoded using URL path encoding, or 4) "fragment" - encoded using URL fragment encoding. The precise definition of these terms is defined in the documentation for the methods of the Guava library\u0027s UrlEscapers class. tooltip.velocity-engine=This attribute may be used to specify the name of the Velocity engine defined within the application. @@ -723,10 +738,13 @@ tooltip.nameid-formats-format=Format tooltip.nameid-formats-value=Value tooltip.nameid-formats-type=Type -tooltip.group-name=Group Name -tooltip.group-description=Group Description +tooltip.group-name=A user friendly name used to identify the group. +tooltip.group-description=A description of the purpose of the group. + +tooltip.role-name=A user friendly name used to identify the role. +tooltip.role-description=A description of the purpose of the role. -tooltip.role-name=Role Name -tooltip.role-description=Role Description +tooltip.contact-information=Add a contact to organization information. Contacts provide information about how to contact the organization responsible for standing up the entity. -tooltip.contact-information=Contact Information \ No newline at end of file +label.external-description=Description +tooltip.external-description=A brief description of the purpose of this filter. \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages_en.properties b/backend/src/main/resources/i18n/messages_en.properties index ab537ed03..e69de29bb 100644 --- a/backend/src/main/resources/i18n/messages_en.properties +++ b/backend/src/main/resources/i18n/messages_en.properties @@ -1,732 +0,0 @@ -# Fill this file with key/value pairs, as follows: -# -# some.test.message=This is a test message. -# -# Then, create a copy using the name of the language code: -# -# messages_.properties -# -# Do this for each language we want to support. -# Ideally, all messages should exist for each language. - -action.dashboard=Dashboard -action.logout=Logout -action.logged-in=Logged in as {username} -action.add=Add -action.add-new=Add New -action.add-new-provider=Add a new metadata provider -action.add-new-source=Add a new metadata source -action.clear=Clear -action.delete=Delete -action.remove=Remove -action.save=Save -action.toggle=Toggle -action.add-contact=Add Contact -action.add-contacts=Add Contacts -action.use-mine=Use My Changes -action.use-theirs=Use Their Changes -action.discard-changes=Discard Changes -action.add-endpoint=Add Endpoint -action.add-nameid-format=Add NameID Format -action.add-certificate=Add Certificate -action.add-entity-id=Add Entity ID -action.download-file=Download File -action.cancel=Cancel -action.search=Search -action.select-id=Select ID -action.finish-later=Finish Later -action.back=Back -action.next=Next -action.create=Create -action.copy=Copy -action.choose-file=Choose File -action.search-by=Search By -action.preview=Preview -action.preview-xml=Preview XML -action.select-metadata-filter-type=Select a metadata filter type -action.add-authentication-method=Add Authentication Method -action.move-up=Move Up -action.move-down=Move Down -action.edit=Edit -action.add-filter=Add Filter -action.manage-filters=Manage Filters -action.version-history=Version History -action.options=Options -action.xml=XML -action.manage=Manage -action.close=Close -action.back-to-top=Back to Top -action.restore=Restore -action.view-only-changes=View Only Changes -action.user-role=User Role -action.toggle-view=Toggle view -action.advanced=Advanced -action.add-new-attribute=Add new attribute -action.add-new-group=Add new group -action.add-attribute=Add attribute -action.custom-entity-attributes=Custom entity attributes -action.groups=Groups -action.source-group=Group -action.enable=Enable -action.disable=Disable -action.get-latest=Get latest changes - -action.add-new-role=Add new role -action.roles=Roles -action.source-role=Role -action.select-bundle=Select Bundle - -action.get-latest=Get latest - -value.enabled=Enabled -value.disabled=Disabled -value.current=Current -value.not-current=Not Current -value.none=None -value.file=File -value.memory=Memory -value.true=true -value.false=false -value.regex=Regex -value.script=Script -value.entity-id=Entity ID - -value.support=Support -value.technical=Technical -value.administrative=Administrative -value.other=Other - -value.signing=Signing -value.encryption=Encryption -value.both=Both - -value.entity=Entity -value.condition-ref=ConditionRef -value.condition-script=ConditionScript - -value.file-backed-http-metadata-provider=FileBackedHttpMetadataProvider -value.file-system-metadata-provider=FileSystemMetadataProvider -value.local-dynamic-metadata-provider=LocalDynamicMetadataProvider -value.dynamic-http-metadata-provider=DynamicHttpMetadataProvider -value.entity-attributes-filter=EntityAttributes Filter -value.spdescriptor=SPSSODescriptor -value.attr-auth-descriptor=AttributeAuthorityDescriptor - -value.md-query-protocol=MetadataQueryProtocol -value.template=Template -value.string=String -value.boolean=Boolean -value.list=List -value.long=Long -value.double=Double -value.duration=Duration -value.spring-bean-id=Spring Bean ID -value.BOOLEAN=Boolean -value.SELECTION_LIST=List -value.STRING=String -value.LONG=Long -value.DOUBLE=Double -value.DURATION=Duration -value.SPRING_BEAN_ID=Spring Bean ID - -brand.header.title=Source Management -brand.logo-link-label=Shibboleth -brand.logo-link-description=Link to Shibboleth Website -brand.logo-alt=Shibboleth Logo - Click to be directed to www.shibboleth.net -brand.footer.text=Links to Shibboleth resources: -brand.footer.links-label-1=Home Page -brand.footer.links-desc-1=Shibboleth.net open-source community home page -brand.footer.links-label-2=Wiki -brand.footer.links-desc-2=Shibboleth.net open-source community wiki -brand.footer.links-label-3=Issue Tracker -brand.footer.links-desc-3=Shibboleth.net open-source community issue tracker -brand.footer.links-label-4=Mailing List -brand.footer.links-desc-4=Shibboleth.net open-source community mailing list -brand.footer.copyright=Copyright \u00A9 {year} Internet2 - -brand.in-partnership-with=In partnership with -brand.and=and - -heading.shibboleth=Shibboleth - -label.source-configuration=Metadata Source Configuration -label.provider-configuration=Metadata Provider Configuration -label.entity-attribute-name=Custom Entity Attribute Name -tooltip.entity-attribute-name=Custom Entity Attribute Name -label.entity-attribute-type=Attribute Type -tooltip.entity-attribute-type=Attribute Type -label.entity-attribute-help=Help Text -tooltip.entity-attribute-help=Help Text -label.entity-attribute-default=Default Value -tooltip.entity-attribute-default=Default Value -label.entity-attribute-list-options=List options -tooltip.entity-attribute-list-options=List options -label.entity-attribute-friendly-name=Friendly name -tooltip.entity-attribute-friendly-name=Friendly name -label.entity-attribute-attr-name=Attribute name -tooltip.entity-attribute-attr-name=This is normally a uri or urn -label.entity-attribute-display-name=Display name -tooltip.entity-attribute-display-name=Display name - -label.entity-attribute-persist-value=Persist Value -label.entity-attribute-persist-type=Persist Type -tooltip.entity-attribute-persist-value=Persist Value -tooltip.entity-attribute-persist-type=Persist Type -label.entity-attribute-invert=Invert -tooltip.entity-attribute-invert=Invert - -label.entity-attributes=Entity Attributes -label.custom-entity-attributes=Custom Entity Attributes -label.help-text=Help text -label.default-value=Default Value -label.groups-management=Groups Management -label.new-group=New Group -label.new-attribute=New Custom Entity Attribute -label.edit-group=Edit Group - -label.metadata-source=Metadata Source -label.metadata-sources=Metadata Sources -label.metadata-provider=Metadata Provider -label.metadata-providers=Metadata Providers -label.source-management=Source Management -label.search-files=Search Files -label.service-provider-entity-id=Service Provider Entity ID -label.service-provider-name-dashboard-display-only=Service Provider Name (Dashboard Display Only) -label.enable-this-service=Enable this service? -label.organization-name=Organization Name -label.organization-display-name=Organization Display Name -label.organization-url=Organization URL -label.name=Name -label.type=Type -label.email-address=Email Address -label.assertion-consumer-service-endpoints=Assertion Consumer Service Endpoints -label.my-changes=My Changes -label.their-changes=Their Changes -label.new-endpoint=New Endpoint -label.select-binding=Select Binding Type -label.mark-as-default=Mark as Default -label.attribute-name=Attribute Name -label.group-name=Group Name -label.group-description=Group Description -label.yes=Yes -label.check-all-attributes=Check All Attributes -label.clear-all-attributes=Clear All Attributes -label.protocol-support-enumeration=Protocol Support Enumeration -label.select-protocol=Select Protocol -label.nameid-format=NameID Format -label.nameid-formats=NameID Formats -label.name-and-entity-id=Name and Entity ID -label.organization-information=SP/Organization Information -label.contact-information=Contact Information -label.given-name=Given Name -label.contact-type=Contact Type -label.user-interface-mdui-infromation=User Interface / MDUI Information -label.display-name=Display Name -label.information-url=Information URL -label.description=Description -label.privacy-statement=Privacy Statement URL -label.logo-url=Logo URL -label.logo-width=Logo Width -label.logo-height=Logo Height -label.sp-sso-descriptor-information=SP SSO Descriptor Information -label.logout-endpoints=Logout Endpoints -label.binding-types=Binding Type -label.security-information=Security Information -label.is-there-a-x509-certificate=Is there a X509 Certificate? -label.authentication-requests-signed=Authentication Requests Signed? -label.want-assertions-signed=Want Assertions Signed? -label.x509-certificates=X509 Certificates -label.certificate-name-display-only=Certificate Name (Display Only) -label.certificate=Certificate -label.assertion-consumer-services=Assertion Consumer Services -label.assertion-consumer-service-location=Location -label.assertion-consumer-service-endpoint=Assertion Consumer Service Endpoints -label.default=(default) -label.assertion-consumer-service-location-binding=Location Binding -label.relying-party-overrides=Relying Party Overrides -label.sign-the-assertion=Sign the Assertion? -label.turn-off-encryption-of-response=Turn off Encryption of Response? -label.use-sha1-signing-algorithm=Use SHA1 Signing Algorithm? -label.ignore-any-sp-requested-authentication-method=Ignore any SP-Requested Authentication Method? -label.omit-not-before-condition=Omit Not Before Condition? -label.responderid=ResponderID -label.attribute-release=Attribute Release -label.true=True -label.false=False -label.no=No -label.new-cert=New Certificate -label.url=URL -label.privacy-statement-url=Privacy Statement URL -label.contact-name=Contact Name -label.select-contact-type=Select Contact Type -label.contact-email-address=Contact Email Address -label.dont-sign-the-response=Don\u0027t Sign the Response -label.nameid-format-to-send=NameID Format to Send -label.authentication-methods-to-use=Authentication Methods to Use -label.auth-method-indexed=Authentication Method -label.preview-provider=Preview XML -label.search-entity-id=Search Entity Id -label.edit-filter=Edit Filter -label.min-4-chars=Minimum 4 characters. -label.new-filter=New Filter -label.service-provider=Metadata Source Name: -label.created-date=Created Date: -label.service-entity-id=Metadata Source Entity ID: -label.service-provider-status=Metadata Source Status: -label.current-metadata-sources=Current Metadata Sources -label.current-metadata-providers=Current Metadata Providers -label.add-a-new-metadata-provider=Add a new metadata provider -label.service-resolver-name-dashboard-display-only=Service Provider Name (Dashboard Display Only) -label.service-resolver-entity-id=Service Provider Entity ID -label.add-a-new-metadata-source=Add a new metadata source - Finish Summary -label.name-and-entityid=Name and Entity ID. -label.finish-summary-validation=Finished! -label.select-entity-id-to-copy=Select the Entity ID to copy -label.metadata-source-name-dashboard-display-only=Metadata Source Name (Dashboard Display Only) -label.new-entity-id=New Entity ID -label.sections-to-copy=Sections to Copy? -label.add-a-new-metadata-resolver=Add a new metadata source -label.how-are-you-adding-the-metadata-information=How are you adding the metadata information? -label.upload-url=Upload/URL -label.or=or -label.name-and-upload-url=Name and Upload Url -label.service-resolver-file=Select Provider Metadata File -label.service-resolver-metadata-url=Service Provider Metadata URL -label.search-criteria-by=Search Criteria by { displayType } -label.entity-ids-added=Entity Ids Added -label.ui-mdui-info=User Interface / MDUI Information -label.sp-sso-descriptor-info=SP SSO Descriptor Information -label.security-info=Security Information -label.sp-org-info=SP/Organization Information -label.finished=Finished! -label.signing=Signing -label.encryption=Encryption -label.both=Both -label.org-info=Organization Information -label.security-descriptor-info=Security Descriptor Information -label.entity-id=Entity ID -label.service-provider-name=Service Provider Name -label.organization=Organization -label.contacts=Contacts -label.contact=Contact -label.mdui=MDUI Information -label.service-provider-sso-descriptor=Service Provider Sso Descriptor -label.service-enabled=Service Enabled -label.filter-name=Filter Name -label.filter-enabled=Filter Enabled -label.filter-target=FilterTarget -label.filter-type=Filter Type -label.filter-target-type=Filter Target Type -label.filter-target-value=Filter Target Value -label.target=Filter Target -label.option=Option -label.options=Options -label.value=Value -label.binding-type=Binding Type -label.sign-assertion=Sign Assertions -label.dont-sign-response=Don\u0027t Sign Response -label.turn-off-encryption=Turn off encryption -label.use-sha=Use Sha -label.ignore-authentication-method=Ignore Authentication Method -label.omit-not-before=Omit Not Before -label.responder-id=Responder ID -label.name-id-formats=Name ID Formats -label.name-id-format= Name ID Format -label.authentication-methods=Authentication Methods -label.authentication-method=Authentication Method -label.x509-certificate-available=x509 Certificate Available -label.protocol-support-enum=Protocol Support Enumeration -label.binding=Binding -label.location-url=Location URL -label.make-default=Make Default -label.metadata-provider-name-dashboard-display-only=Metadata Provider Name (Dashboard Display Only) -label.default-authentication-methods=Default Authentication Method(s) -label.new-of-type=New { type } -label.filters=Filters -label.attributes=Attributes -label.metadata-resolver-id=Metadata Resolver ID - -label.metadata-filter-name=Metadata Filter Name (Dashboard Display Only) -label.filter-enable=Enable this Filter? -label.search-criteria=Search Criteria -label.metadata-filter=Metadata Filter -label.metadata-filter-type=Metadata Filter Type -label.filter-versions=Filter Versions - -label.http-connection-attributes=HTTP Connection Attributes -label.http-security-attributes=HTTP Security Attributes -label.http-proxy-attributes=HTTP Proxy Attributes -label.http-caching-attributes=HTTP Caching Attributes - -label.connection-request-timeout=Connection Request Timeout -label.connection-timeout=Connection Timeout -label.socket-timeout=Socket Timeout -label.disregard-tls-cert=Disregard TLS Certificate? -label.proxy-host=Proxy Host -label.proxy-port=Proxy Port -label.proxy-user=Proxy User -label.proxy-password=Proxy Password -label.http-caching=HTTP Caching? -label.select-caching-type=Select Caching Type -label.http-caching-directory=HTTP Cache Directory -label.http-max-cache-entries=HTTP Max Cache Entries -label.max-cache-entry-size=HTTP Max Cache Entry Size -label.duration=Duration -label.real-number=Real Number (between 0.0 and 1.0) -label.min-refresh-delay=Min Refresh Delay -label.max-refresh-delay=Max Refresh Delay -label.refresh-delay-factor=Refresh Delay Factor -label.resolve-via-predicates-only=Resolve Via Predicates Only? -label.expiration-warning-threshold=Expiration Warning Threshold - -label.satisfy-any-predicates=Satisfy Any Predicates? -label.use-default-predicate-reg=Use Default Predicate Registry? -label.fail-fast-init=Fail Fast Initialization? -label.require-valid-metadata=Require Valid Metadata? -label.backup-file-init-refresh-delay=Backup File Init Next Refresh Delay -label.backing-file=Backing File -label.init-from-backup=Initialize From Backup File? -label.metadata-url=Metadata URL -label.xml-id=ID -label.enable-service=Enable this service? -label.metadata-provider-type=Metadata Provider Type -label.metadata-provider-name=Metadata Provider Name -label.select-metadata-type=Select a metadata provider type -label.metadata-provider-status=Metadata Provider Status -label.enable-provider-upon-saving=Enable Metadata Provider? -label.certificate-type=Type - -label.metadata-file=Metadata File - -label.enable-filter=Enable Filter? -label.required-valid-until=Required Valid Until Filter -label.max-validity-interval=Max Validity Interval -label.signature-validation-filter=Signature Validation Filter -label.require-signed-root=Require Signed Root -label.certificate-file=Certificate File -label.entity-role-whitelist=Entity Role Whitelist Filter -label.retained-roles=Retained Roles -label.remove-roleless-entity-descriptors=Remove Roleless Entity Descriptors? -label.remove-empty-entities-descriptors=Remove Empty Entities Descriptors? - -label.select-metadata-provider-type=Select Metadata Provider Type -label.select-metadata-filter-type=Select Metadata Filter Type -label.filter-list=Filter List -label.common-attributes=Common Attributes -label.reloading-attributes=Reloading Attributes -label.dynamic-attributes=Dynamic Attributes -label.metadata-filter-plugins=Metadata Filter Plugins -label.advanced-settings=Advanced Settings -label.edit-metadata-provider=Edit Metadata Provider -label.http-settings-advanced=Http Settings (Advanced) - -label.metadata-ui=User Interface / MDUI Information -label.descriptor-info=SP SSO Descriptor Information -label.key-info=Security Information -label.assertion=Assertion Consumer Service -label.relying-party=Relying Party Overrides - -label.attribute-eduPersonPrincipalName=eduPersonPrincipalName (EPPN) -label.attribute-uid=uid -label.attribute-mail=mail -label.attribute-surname=surname -label.attribute-givenName=givenName -label.attribute-eduPersonAffiliation=eduPersonAffiliation -label.attribute-eduPersonScopedAffiliation=eduPersonScopedAffiliation -label.attribute-eduPersonPrimaryAffiliation=eduPersonPrimaryAffiliation -label.attribute-eduPersonEntitlement=eduPersonEntitlement -label.attribute-eduPersonAssurance=eduPersonAssurance -label.attribute-eduPersonUniqueId=eduPersonUniqueId -label.attribute-employeeNumber=employeeNumber -label.force-authn=Force AuthN -label.ignore-request-signatures=Ignore Request Signatures - -label.min-cache-duration=Min Cache Duration -label.max-cache-duration=Max Cache Duration -label.max-idle-entity-data=Max Idle Entity Data -label.cleanup-task-interval=Cleanup Task Interval -label.persistent-cache-manager-directory=Persistent Cache Manager Directory -label.initialize-from-persistent-cache-in-background=Initialize from Persistent Cache in Background? -label.background-init-from-cache-delay=Background Initialization from Cache Delay -label.source-directory=Source Directory -label.remove-idle-entity-data=Remove Idle Entity Data? -label.do-resolver-initialization=Initialize -label.file-doesnt-exist=The file specified in the resolver does not exist on the file system. Therefore, the resolver cannot be initialized. - -label.md-request-type=Metadata Request URL Construction Type -label.md-request-value=Metadata Request URL Construction Value -label.transform-ref=Transform Ref -label.encoding-style=Encoding Style -label.velocity-engine=Velocity Engine -label.match=Match - -label.remove-existing-formats=Remove Existing Formats? -label.nameid-formats-format=NameID Format -label.nameid-formats-value=NameID Value -label.nameid-formats-type=NameID Type - -label.select-filter-type=Select Filter Type - -label.admin=Admin -label.user-maintenance=User Maintenance -label.user-id=UserId -label.email=Email -label.delete=Delete? - -label.title=Title -label.enabled=Enabled -label.disabled=Disabled -label.author=Author -label.creation-date=Creation Date -label.order=Order -label.provider-type=Provider Type -label.version-history=Version History -label.metadata-resolver-history=Metadata resolver history -label.metadata-version-history=Metadata Version History -label.select-version=Select Version -label.version=Version -label.save-date=Save Date -label.changed-by=Changed By -label.actions=Actions -label.check-to-select=Check to select -label.current=Current -label.restore=Restore -label.compare-selected=Compare Selected -label.restore-version=Restore Version ({ date }) -label.group=Group - -label.saved=Saved -label.by=By - -label.source=Metadata Source -label.provider=Metadata Provider - -label.url-validation-regex=URL validation regular expression -tooltip.url-validation-regex=URL validation regular expression - -label.bundle-name=Bundle name -label.bundle-disp=Bundle - {name} -action.add-new-bundle=Add bundle -tooltip.bundle-name=A user friendly name to identify the bundle -action.attribute-bundles=Attribute bundles -label.new-attribute-bundle=New attribute bundle -label.edit-attribute-bundle=Edit attribute bundle -label.bundled-attributes=Bundled Attributes -label.attribute-bundles=Attribute Bundles -message.user-role-admin-group=Cannot change group for ROLE_ADMIN users. - -label.roles-management=Role Management -label.new-role=New Role -label.edit-role=Edit Role -label.role-name=Role Name -label.role-description=Role Description -label.role=Role - -message.delete-role-title=Delete Role? - -message.delete-role-body=You are requesting to delete a role. If you complete this process the role will be removed. This cannot be undone. Do you wish to continue? -message.duration=Requires a valid ISO 8601 duration (ex. PT2D) - -message.delete-user-title=Delete User? -message.delete-user-body=You are requesting to delete a user. If you complete this process the user will be removed. This cannot be undone. Do you wish to continue? - -message.delete-group-title=Delete Group? -message.delete-group-body=You are requesting to delete a group. If you complete this process the group will be removed. This cannot be undone. Do you wish to continue? - -message.delete-attribute-title=Delete Attribute? -message.delete-attribute-body=You are requesting to delete a custom attribute. If you complete this process the attribute will be removed. This cannot be undone. Do you wish to continue? - -message.group-pattern-fail=Pattern must match group url validation pattern: {regex} - -message.must-be-unique=Must be unique. -message.must-be-number=Must be a number. -message.name-must-be-unique=Name must be unique. -message.uri-valid-format=URI must be valid format. -message.id-unique=ID must be unique. -message.name-unique=Service provider name must be unique. -message.array-items-must-be-unique=Items in list must be unique. -message.valid-duration=Must be a valid duration. -message.valid-name=No special characters or whitespace allowed. -message.required=Missing required property. - -message.org-name-required=Organization Name is required. -message.org-displayName-required=Organization Name is required. -message.org-url-required=Organization Name is required. -message.org-incomplete=These three fields must all be entered if any single field has a value. - -message.type-required=Missing required property: Type -message.match-required=Missing required property: Match -message.value-required=Missing required property: Value - -message.protocol-support-required=Protocol Support Enumeration is required if any NameID formats are defined. - -message.conflict=Conflict -message.data-version-contention=Data Version Contention -message.contention-new-version=A newer version of this metadata source has been saved. Below are a list of changes. You can use your changes or their changes. -message.contention-error=There was a problem saving due to a mismatched version. -message.organization-feedback=These three fields must all be entered if any single field has a value. -message.valid-email=Must be a valid Email Address -message.valid-url=Must be a valid URL -message.must-be-valid-url=Must be a valid URL -message.must-be-integer=Must be an integer equal to or greater than 0 -message.delete-source-title=Delete Metadata Source? -message.delete-source-body=You are deleting a metadata source. This cannot be undone. Continue? -message.incomplete-form=Incomplete Form -message.delete-filter-title=Delete Metadata Filter? -message.delete-filter-body=You are deleting a metadata filter. This cannot be undone. Continue? -message.unsaved-dialog-title=Save your information? -message.unsaved-editor=You have not saved your changes. If you exit this screen, your changes will be lost. -message.editor-invalid=All forms must be valid before changes can be saved! -message.unsaved-source-1=You have not completed the wizard! Do you wish to save this information? You can finish the wizard later by clicking the \u0027Edit\u0027 -message.unsaved-source-2=icon on the dashboard. -message.service-resolver-name-required=Service Provider Name is required -message.entity-id-required=Entity ID is required -message.entity-id-must-be-unique=Entity ID must be unique -message.target-required=Entity ID to copy is required -message.file-upload-alert=Note: You can only import a file with a single entityID (EntityDescriptor element) in it. Anything more in that file will result in an error. -message.add-new-md-resolver=Add a new metadata source -message.wizard-status=Step { index } of { length } -message.entity-id-min-unique=You must add at least one entity id target and they must each be unique. -message.required-for-scripts=Required for Scripts -message.required-for-regex=Required for Regex -message.file-doesnt-exist=The requested file to be processed does not exist on the server. -message.database-constraint=There was a database constraint problem processing the request. Check the request to ensure that fields that must be unique are truly unique. - -message.no-filters=No Filters -message.no-filters-added=No filters have been added to this Metadata Provider - -message.create-new-version-from-version=Create New Version from Previous Settings -message.restoring-this-version-will-copy=Restoring this version will copy the Version ({ date }) configuration and create a new Version from the selected version settings. You can then edit the configuration before saving the new version. - -message.invalid-regex-pattern=Invalid Regular Expression - -message.invalid-signing=Unless the response or the assertions are signed, SAML security is compromised and the service should reject the SAML response. (If it doesn\u0027t, investigate, as that is serious unless the HTTP-Artifact binding is in use.) - -message.session-timeout-heading=Session timed out -message.session-timeout-body=Your session has timed out. Please login again. -message.session-timeout=An error has occurred while saving. Your session may have timed out. - -tooltip.entity-id=Entity ID -tooltip.service-provider-name=Service Provider Name (Dashboard Display Only) -tooltip.force-authn=Disallows use (or reuse) of authentication results and login flows that don\u0027t provide a real-time proof of user presence in the login process -tooltip.ignore-request-signatures=Whether to skip validation of signatures on requests when dealing with badly broken or incompetently operated services -tooltip.service-provider-name-dashboard-display-only=Service Provider Name (Dashboard Display Only) -tooltip.service-provider-entity-id=Service Provider Entity ID -tooltip.organization-name=Organization Name -tooltip.organization-display-name=Organization Display Name -tooltip.organization-url=Organization URL -tooltip.name=Name -tooltip.type=Type -tooltip.email-address=Email Address -tooltip.assertion-consumer-service-location=Assertion Consumer Service Location -tooltip.assertion-consumer-service-location-binding=Assertion Consumer Service Location Binding -tooltip.mark-as-default=Mark as Default -tooltip.protocol-support-enumeration=Protocol Support Enumeration -tooltip.nameid-format=Content is name identifier format which is added to all the applicable roles of the entities which match any of the following or {{}}elements. -tooltip.enable-this-service-upon-saving=If checkbox is clicked, the metadata provider is enabled for integration with the IdP -tooltip.is-there-a-x509-certificate=Is there a X509 Certificate? -tooltip.authentication-requests-signed=Authentication Requests Signed -tooltip.want-assertions-signed=Want Assertions Signed -tooltip.certificate-name=Certificate Name -tooltip.certificate-type=Certificate Type -tooltip.certificate=Certificate -tooltip.logout-endpoints=Logout Endpoints -tooltip.url=Logout Endpoints Url -tooltip.binding-type=Logout Endpoints Binding Type -tooltip.mdui-display-name=Typically, the IdP Display Name field will be presented on IdP discovery service interfaces. -tooltip.mdui-information-url=The IdP Information URL is a link to a comprehensive information page about the IdP. This page should expand on the content of the IdP Description field. -tooltip.mdui-description=The IdP Description is a brief description of the IdP service. On a well-designed discovery interface, the IdP Description will be presented to the user in addition to the IdP Display Name, and so the IdP Description helps disambiguate duplicate or similar IdP Display Names. -tooltip.mdui-privacy-statement-url=The IdP Privacy Statement URL is a link to the IdP\u0027s Privacy Statement. The content of the Privacy Statement should be targeted at end users. -tooltip.mdui-logo-url=The IdP Logo URL in metadata points to an image file on a remote server. A discovery service, for example, may rely on a visual cue (i.e., a logo) instead of or in addition to the IdP Display Name. -tooltip.mdui-logo-width=The logo should have a minimum width of 100 pixels -tooltip.mdui-logo-height=The logo should have a minimum height of 75 pixels and a maximum height of 150 pixels (or the application will scale it proportionally) -tooltip.contact-name=Contact Name -tooltip.contact-type=Contact Type -tooltip.contact-email=Contact Email -tooltip.sign-assertion=Sign Assertion -tooltip.dont-sign-response=Don\u0027t Sign Response -tooltip.turn-off-encryption=Turn Off Encryption of Response -tooltip.usa-sha-algorithm=Use SHA1 Signing Algorithm -tooltip.authentication-methods-to-use=Authentication Methods to Use -tooltip.ignore-auth-method=Ignore any SP-Requested Authentication Method -tooltip.omit-not-before-condition=Omit Not Before Condition -tooltip.responder-id=ResponderId -tooltip.instruction=Information icon -tooltip.attribute-release-table=Attribute release table - select the attributes you want to release (default unchecked) -tooltip.metadata-filter-name=Metadata Filter Name -tooltip.metadata-filter-type=Metadata Filter Type -tooltip.connection-request-timeout=The maximum amount of time to wait for a connection to be returned from the HTTP client\u0027s connection pool manager. Set to PT0S to disable. This attribute is incompatible with httpClientRef. -tooltip.connection-timeout=The maximum amount of time to wait to establish a connection with the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. -tooltip.socket-timeout=The maximum amount of time to wait between two consecutive packets while reading from the socket connected to the remote server. Set to PT0S to disable. This attribute is incompatible with httpClientRef. -tooltip.disregard-tls-cert=If true, no TLS certificate checking will take place over an HTTPS connection. This attribute is incompatible with httpClientRef. (Be careful with this setting, it is typically only used during testing. See the HttpClientConfiguration topic for more information.) -tooltip.proxy-host=The hostname of the HTTP proxy through which connections will be made. This attribute is incompatible with httpClientRef. -tooltip.proxy-port=The port of the HTTP proxy through which connections will be made. This attribute is incompatible with httpClientRef. -tooltip.proxy-user=The username used with the HTTP proxy through which connections will be made. This attribute is incompatible with httpClientRef. -tooltip.proxy-password=The password used with the HTTP proxy through which connections will be made. This attribute is incompatible with httpClientRef. -tooltip.http-caching=The type of low-level HTTP caching to perform. There are three choices: 'none' indicates the HTTP response is not cached by the client library, 'file' indicates the HTTP response is written to disk (but will not survive a restart), 'memory' indicates the HTTP response is stored in memory. This attribute is incompatible with httpClientRef and its value may not be specified as a bean property. Some metadata providers, most notably the reloading 'batch-oriented' providers, implement HTTP caching at a higher layer and tend to work best with httpCaching='none'. -tooltip.http-caching-directory=If httpCaching='file', this attribute specifies where retrieved files are to be cached. This attribute is incompatible with httpClientRef. -tooltip.http-max-cache-entries=The maximum number of responses written to cache. This attribute is incompatible with httpClientRef. -tooltip.max-cache-entry-size=The maximum response body size that may be cached, in bytes. This attribute is incompatible with httpClientRef. - -tooltip.metadata-provider-name=Metadata Provider Name (for display on the Dashboard only) -tooltip.metadata-provider-type=Metadata Provider Type -tooltip.xml-id=Identifier for logging, identification for command line reload, etc. -tooltip.metadata-url=The URL that the metadata is served from. -tooltip.metadata-file=The absolute path to the local metadata file to be loaded. -tooltip.init-from-backup=Flag indicating whether initialization should first attempt to load metadata from the backup file. If true, foreground initialization will be performed by loading the backing file, and then a refresh from the remote HTTP server will be scheduled to execute in a background thread, after a configured delay. This can improve IdP startup times when the remote HTTP file is large in size. -tooltip.backing-file=Specifies where the backing file is located. If the remote server is unavailable at startup, the backing file is loaded instead. -tooltip.backup-file-init-refresh-delay=Delay duration after which to schedule next HTTP refresh when initialized from the backing file. -tooltip.require-valid-metadata=Whether candidate metadata found by the resolver must be valid in order to be returned (where validity is implementation specific, but in SAML cases generally depends on a validUntil attribute.) If this flag is true, then invalid candidate metadata will not be returned. -tooltip.fail-fast-init=Whether to fail initialization of the underlying MetadataResolverService (and possibly the IdP as a whole) if the initialization of a metadata provider fails. When false, the IdP may start, and will continue to attempt to reload valid metadata if configured to do so, but operations that require valid metadata will fail until it does. -tooltip.use-default-predicate-reg=Flag which determines whether the default CriterionPredicateRegistry will be used if a custom one is not supplied explicitly. -tooltip.satisfy-any-predicates=Flag which determines whether predicates used in filtering are connected by a logical 'OR' (true) or by logical 'AND' (false). -tooltip.enable-provider-upon-saving=If checkbox is clicked, the metadata provider is enabled for integration with the IdP - -tooltip.max-validity-interval=Defines the window within which the metadata is valid. -tooltip.require-signed-root=If true, this fails to load metadata with no signature on the root XML element. -tooltip.certificate-file=A path (on the local file system) to a certificate file whose key is used to verify the signature. Conflicts with trustEngineRef and both of the child elements. -tooltip.retained-roles=Note that property replacement cannot be used on this element. -tooltip.remove-roleless-entity-descriptors=Controls whether to keep entity descriptors that contain no roles. Note: If this attribute is set to false, the resulting output may not be schema-valid since an element must include at least one role descriptor. -tooltip.remove-empty-entities-descriptors=Controls whether to keep entities descriptors that contain no entity descriptors. Note: If this attribute is set to false, the resulting output may not be schema-valid since an element must include at least one child element, either an element or an element. - -tooltip.min-refresh-delay=Lower bound on the next refresh from the time calculated based on the metadata\u0027s expiration. Setting this to 0 will result in the default value being used. -tooltip.max-refresh-delay=Upper bound on the next refresh from the time calculated based on the metadata\u0027s expiration. -tooltip.refresh-delay-factor=A factor applied to the initially determined refresh time in order to determine the next refresh time (typically to ensure refresh takes place prior to the metadata\u0027s expiration). Attempts to refresh metadata will generally begin around the product of this number and the maximum refresh delay. -tooltip.resolve-via-predicates-only=Flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection, when an entityID input criterion is not supplied. -tooltip.expiration-warning-threshold=For each attempted metadata refresh (whether or not fresh metadata is obtained), if requireValidMetadata is true, and there is a validUntil XML attribute on the document root element, and the difference between validUntil and the current time is less than expirationWarningThreshold, the system logs a warning about the impending expiration. - -tooltip.filter-name=Filter Name -tooltip.enable-filter=Enable Filter? -tooltip.enable-service=Enable Service? - -tooltip.min-cache-duration=The minimum duration for which metadata will be cached before it is refreshed. -tooltip.max-cache-duration=The maximum duration for which metadata will be cached before it is refreshed. -tooltip.max-idle-entity-data=The maximum duration for which metadata will be allowed to be idle (no requests for it) before it is removed from the cache. -tooltip.cleanup-task-interval=The interval at which the internal cleanup task should run. This task performs background maintenance tasks, such as the removal of expired and idle metadata. -tooltip.persistent-cache-manager-directory=The optional manager for the persistent cache store for resolved metadata. On metadata provider initialization, data present in the persistent cache will be loaded to memory, effectively restoring the state of the provider as closely as possible to that which existed before the previous shutdown. Each individual cache entry will only be loaded if 1) the entry is still valid as determined by the internal provider logic, and 2) the entry passes the (optional) predicate supplied via initializationFromCachePredicateRef. -tooltip.initialize-from-persistent-cache-in-background=Flag indicating whether should initialize from the persistent cache in the background. Initializing from the cache in the background will improve IdP startup times. -tooltip.background-init-from-cache-delay=The delay after which to schedule the background initialization from the persistent cache when initializeFromPersistentCacheInBackground=true. - -tooltip.source-directory=Convenience mechanism for wiring a FilesystemLoadSaveManager, loading from the specified source directory in the local filesystem. This attribute will be ignored if sourceManagerRef is also specified. Either this attribute or sourceManagerRef is required. -tooltip.remove-idle-entity-data=Flag indicating whether idle metadata should be removed. - -tooltip.do-resolver-initialization=Initialize this resolver? In the case of Filesystem resolvers, this will cause the system to read the file and index the resolver. -tooltip.md-request-type=Options are 1) Metadata Query Protocol, 2) Regex. -tooltip.md-request-value=Content of the element. -tooltip.transform-ref=A reference to a transform function for the entityID. If used, the child element must be empty. -tooltip.encoding-style=Determines whether and how the entityID value will be URL encoded prior to replacement. Allowed values are: 1) "none" - no encoding is performed, 2) "form" - encoded using URL form parameter encoding (for query parameters), 3) "path" - encoded using URL path encoding, or 4) "fragment" - encoded using URL fragment encoding. The precise definition of these terms is defined in the documentation for the methods of the Guava library\u0027s UrlEscapers class. -tooltip.velocity-engine=This attribute may be used to specify the name of the Velocity engine defined within the application. -tooltip.match=A regular expression against which the entityID is evaluated. - -tooltip.remove-existing-formats=Whether to remove any existing formats from a role if any are added by the filter (unmodified roles will be untouched regardless of this setting) -tooltip.nameid-formats-format=Format -tooltip.nameid-formats-value=Value -tooltip.nameid-formats-type=Type - -tooltip.group-name=Group Name -tooltip.group-description=Group Description - -tooltip.role-name=Role Name -tooltip.role-description=Role Description - -tooltip.contact-information=Contact Information \ No newline at end of file diff --git a/backend/src/main/resources/metadata-sources-ui-schema.json b/backend/src/main/resources/metadata-sources-ui-schema.json index 09abb43c1..93ad3ec81 100644 --- a/backend/src/main/resources/metadata-sources-ui-schema.json +++ b/backend/src/main/resources/metadata-sources-ui-schema.json @@ -93,6 +93,7 @@ }, "x509Certificates": { "title": "label.x509-certificates", + "description": "tooltip.x509-certificates", "type": "array", "items": { "$ref": "#/definitions/Certificate" @@ -102,7 +103,7 @@ }, "assertionConsumerServices": { "title": "label.assertion-consumer-service-endpoints", - "description": "", + "description": "tooltip.assertion-consumer-service-endpoints", "type": "array", "items": { "$ref": "#/definitions/AssertionConsumerService" diff --git a/ui/public/assets/schema/provider/filebacked-http.schema.json b/ui/public/assets/schema/provider/filebacked-http.schema.json index dffeaa65e..0c4fe29f6 100644 --- a/ui/public/assets/schema/provider/filebacked-http.schema.json +++ b/ui/public/assets/schema/provider/filebacked-http.schema.json @@ -28,7 +28,7 @@ "properties": { "name": { "title": "label.metadata-provider-name-dashboard-display-only", - "description": "tooltip.metadata-provider-name-dashboard-display-only", + "description": "tooltip.metadata-provider-name", "type": "string", "widget": { "id": "string", @@ -42,8 +42,8 @@ "const": "FileBackedHttpMetadataResolver" }, "enabled": { - "title": "label.enable-service", - "description": "tooltip.enable-service", + "title": "label.enable-provider-upon-saving", + "description": "tooltip.enable-provider-upon-saving", "type": "boolean", "default": false }, diff --git a/ui/src/app/form/component/InfoIcon.js b/ui/src/app/form/component/InfoIcon.js index 209e4f426..1456cbd4b 100644 --- a/ui/src/app/form/component/InfoIcon.js +++ b/ui/src/app/form/component/InfoIcon.js @@ -7,7 +7,7 @@ import Button from 'react-bootstrap/Button'; import Translate from '../../i18n/components/translate'; import { useTranslator } from '../../i18n/hooks'; -export function InfoIcon ({ value = '', placement='left', ...props }) { +export function InfoIcon ({ value = '', placement='auto', ...props }) { const translate = useTranslator(); return( )} aria-label={translate('tooltip.instruction')}> - diff --git a/ui/src/app/form/component/fields/DescriptionField.js b/ui/src/app/form/component/fields/DescriptionField.js index aeea23ace..0b5d67871 100644 --- a/ui/src/app/form/component/fields/DescriptionField.js +++ b/ui/src/app/form/component/fields/DescriptionField.js @@ -3,7 +3,7 @@ import { InfoIcon } from "../InfoIcon"; const DescriptionField = ({ description }) => { if (description) { - return ; + return ; } return null; diff --git a/ui/src/app/form/component/fields/FilterTargetField.js b/ui/src/app/form/component/fields/FilterTargetField.js index 0cdaa50ce..afb4f7828 100644 --- a/ui/src/app/form/component/fields/FilterTargetField.js +++ b/ui/src/app/form/component/fields/FilterTargetField.js @@ -145,7 +145,7 @@ const FilterTargetField = ({ @@ -170,7 +170,7 @@ const FilterTargetField = ({ - +
diff --git a/ui/src/theme/project/buttons.scss b/ui/src/theme/project/buttons.scss index 149e2e722..407d13bb1 100644 --- a/ui/src/theme/project/buttons.scss +++ b/ui/src/theme/project/buttons.scss @@ -16,6 +16,10 @@ $custom-control-spacer-x: 1rem; background: none; } +.btn.btn-text.info-icon { + color: $brand-primary; +} + .btn.btn-link { &:focus { outline: 5px auto -webkit-focus-ring-color;