Aras Feature Keys - REST API?

Activating features is covered on page 61/74 in this guide:

That's so clicky I can't help but think there has to be a better way.

Why do I need this? Well, as a developer I need to replicate, locally, what is our prod env as a starting point to work. It already has lots of layers and Minerva add-ons, and 3rd party contractor work.

One part of setup is adding a stack of keys that all have: Feature Name and Activation Key (and unused expiration date).

From the v12 install guide you can do this, one at a time:

As a developer/QA/exterminator in this environment that I need to replicate this is a real pain doing this 12 times before moving on. And, while I'm needing to do this on v11 and the navigation to the Activate Feature is different, I'm guessing it writes to the same bucket?

I've managed to use REST API to add Users and Identities, and I think I can pretty much tack-on the singular label of any ItemType and write to the system. What I want is concise repeatable setup (especially because the possible variants on just one ItemType, such as User are astronomical). I'm consuming CSVs and the singular item type, and with Bearer Token I can reliably produce setup for these two things.

Anyway, is there an endpoint for "Activate Feature"?

I can see that it uses a post to service, but is there a way todo that in a scripted way for automation setup?

  • In attempting to use Selenium to setup feature keys I'm trying to click on the damn user menu (v12) and while I can log an element and get no errors.... this click never works. There has to be a way to not click, copy/paste this stuff!?

    const [arasUserMenuDD] = await driver.findElements(By.xpath("//aras-dropdown[@data-id='com.aras.innovator.cui_default.mwh_user_menu']"));; // FIXME: I do nothing

  • Wow. Well, for any other dev trying to move forward in any way possible to get rid of all the clicky human-error introducing setup of Aras Feature Keys:

    After logging in (HMU if you want that bit).

    await driver.sleep(5000); const [arasUserMenuDD] = await driver.findElements(By.xpath("//aras-dropdown[@data-id='com.aras.innovator.cui_default.mwh_user_menu']")); await; await driver.sleep(1000); // Dojo too slojo to use the automation mojo... :o( const [activateFeatureLI] = await driver.findElements(By.xpath("//li[@data-index='com.aras.innovator.cui_default.mwh_activate_feature']")); await; await driver.sleep(5000); // IFrameicus Goloricus const [activateFeatureIFrame] = await driver.findElements(By.xpath('//iframe[@class="aras-dialog__iframe"]')); await driver.switchTo().frame(activateFeatureIFrame); await driver.sleep(2000); // Unsure why sleep seems necessary here. The DOM is already rendered in the iframe. // TODO: Repeat key-add against CSV of feature keys. const [activateFeatureInput] = await driver.findElements(By.xpath('//input[@id="activation_key"]')); await activateFeatureInput.sendKeys('foobarbazbatboomboomchangilisious'); const activateButton = await driver.findElement('activate_btn')); await;


    An endpoint for setup would be optimal.