Back to Website
Show / Hide Table of Contents

Class RuntimeConfiguration

Allows you to get and set the user ID and PDF metadata of a product at runtime.

Package: @aurigma/design-editor-iframe
Remarks

The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the RuntimeConfiguration class.

Methods

getImageMetadata(url, fromDesignImages)

Loads metadata of an image.

Declaration
getImageMetadata(url: string, fromDesignImages?: boolean): Promise<ImageMetaData>;
Parameters
Type Name Description
string url

The link to the image.

boolean fromDesignImages

If true, gets metadata from the design gallery.

Returns
Type Description
Promise<ImageMetaData>

Image properties.

Examples
// Get metadata of an image in the public gallery.
const metaData = await editor.configuration.getImageMetadata("public:backgrounds/azure.jpg");

getPdfMetadata()

Reads PDF metadata of the current product.

Declaration
getPdfMetadata(): Promise<IPdfMetadata>;
Returns
Type Description
Promise<IPdfMetadata>

The IPdfMetadata structure with data to be saved in the hi-res output.

Examples
const data = await editor.configuration.getPdfMetadata()
  .catch(error => console.error("Retrieving PDF metadata failed with exception: ", error));

console.info("getPdfMetadata returned: " + data.title);

getUserId()

Reads ID of the user working on the product.

Declaration
getUserId(): Promise<string>;
Returns
Type Description
Promise<string>

The user identifier.

Examples
let editor = await CustomersCanvas.IframeApi.loadEditor(iframe, productDefinition, config);
console.log(await editor.configuration.getUserId());

setPdfMetadata(config)

Sets PDF metadata to the current product.

Declaration
setPdfMetadata(config: IPdfMetadata): Promise<void>;
Parameters
Type Name Description
IPdfMetadata config

PDF metadata to be saved in the hi-res output.

Returns
Type Description
Promise<void>
Examples
editor.configuration.setPdfMetadata({
      author: "John Wood",
      title: "Postcard template with flowers",
      keywords: "red,flower,postcard"
  })
  .catch(error => console.error("setPdfMetadata failed with exception: ", error));

setUserId(userId)

Sets a new user identifier and moves user files to this user's folders.

Declaration
setUserId(userId: string): Promise<void>;
Parameters
Type Name Description
string userId

The new user identifier that needs to be set for the product.

Returns
Type Description
Promise<void>
Remarks

Before using this method, you must enable the secure mode and update an authentication token by using the additionalUserId parameter with the new user identifier.

Examples
<html>
  <head>
      <title>Setting a new user ID</title>
      <!-- The IFrame API script. IMPORTANT! Do not remove or change the ID. -->
      <script id="CcIframeApiScript" type="text/javascript" src="https://example.com/Resources/Generated/IframeApi.js">
      </script>
  </head>
  <body>
      <!-- The iframe to display the editor in. -->
      <iframe id="editorFrame" width="100%" height="800px"></iframe>
      <input type="button" value="Set User ID" onclick="setUserID()" />

      <script>
          let editor = null;

          document.addEventListener('DOMContentLoaded', async () => {
              // Initialize product with an Invitation template.
              const productDefinition = { surfaces: ["invitation"] };
              // Get the iframe element to display the editor in.
              const iframe = document.getElementById("editorFrame");
              // Load the editor.
              editor = await CustomersCanvas.IframeApi.loadEditor(iframe, productDefinition)
                  // If there was an error thrown when loading the editor.
                  .catch(e => console.log(e));
          });

          // Set JohnWood as a new user ID.
          async function setUserID() {
              let userId = await editor.configuration.getUserId();
              // Get an active token for the current user.
              let token = (await (await fetch("https://example.com/api/Auth/Users/" + userId + "/Tokens",
                  {
                      method: "GET",
                      headers: { "X-CustomersCanvasAPIKey": "UniqueSecurityKey" }
                  })).json()).tokens[0].tokenId;

              // Update the token for another user.
              await fetch("https://example.com/api/Auth/Tokens/" + token + "?AdditionalUserId=JohnWood", {
                  method: "PUT",
                  headers: { "X-CustomersCanvasAPIKey": "UniqueSecurityKey" }
              });

              // Copy user files.
              editor.configuration.setUserId("JohnWood")
                  .catch(e => console.log(e));
          }
      </script>
  </body>
  </html>
Was this page helpful?
Thanks for your feedback!
Back to top Copyright © 2001–2025 Aurigma, Inc. All rights reserved.
Loading...
    Thank for your vote
    Your opinion is important to us. To provide details, send feedback.
    Send feedback