Skip to content

App manifest

The manifest.json file is a configuration file that contains essential information about your app. This information includes, but is not limited to, the app's name, its capabilities, the managed objects it provides, and other settings such as permissions the app might introduce.

The app manifest JSON schema can be accessed at: https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json

Note: If you make any modifications to the app manifest, you'll need to restart the development server for these changes to be implemented.

name

The name of the app, has to be URL-friendly.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    "name": "the-amazing-app"
}

endpoints

A collection of endpoints that enable the createRequest() function to redirect requests to the API gateway.

The request URL needs to either start with one of these endpoints or align with its basic dynamic pattern to establish a match.

Wildcards (*)

Will match zero or more characters.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    // https://workspace.backend.net <- does match
    // https://workspace.other.net <- does not match
    "endpoints": ["https://*.backend.net"]
}

Question marks (?)

Will match zero or one character.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    // https://api.backend.net <- does match
    // https://api2.other.net <- does not match
    // http://ap.backend.net <- does match
    "endpoints": ["http?://???.backend.net"]
}

permissions

Permissions that your app should introduce. These will then be available in the Alliance Access Control and Developer Tools apps.

Any permissions assigned to a user will be passed in the Alliance JWT.

Use the Developer Tools app to assign permissions locally when developing your app.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    "permissions": ["read:stuff", "write:stuff", "delete:stuff"]
}

storage

Storage values that your app uses.

If your app sets any cookies, or uses local or session storage, these must then be defined in your app's manifest.
Read more about how to categorize storage here.

If your app attempts to set any value that has not been defined in the app manifest, the operation will be stopped.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    "storage": {
        "my-stored-value": {
            "category": "functional",
            "lifespan": "Browser session",
            "purpose": "This storage value is used to remember whether or not the user has previously interacted with a specific button."
        }
    }
}

resources

Resources used by the app.

localization

Localized resource texts used by the app.
Each text entry will be available in the Resource Management app for translation.

The translations for the currently selected language, if available, can easely be accessed using the getTranslator() utility.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    "resources": {
        "localization": {
            "greeting": {
                "value": "Welcome to our humble abode {{user}}!",
                "description": "A greeting text displayed on the app's initial page to welcome the user."
            }
        }
    }
}

capabilities

Capabilities provided by the app.

Capabilities can be defined as common capabilities, making it available when the app is displayed in the Start Page app.

Each capability defined under capabilities will get a localized resource text, prefixed with capability- and with the label property as its value, with the capability key as a fallback value.

json
{
    "$schema": "https://unpkg.com/@telia-ace/alliance-framework/dist/manifest.schema.json",
    "name": "organization-management",
    "capabilities": {
        "register-application": {
            "common": {
                "order": 1,
                "variant": "secondary"
            },
            "label": "Register Application"
        },
        "create-organization": {
            "common": {
                "order": 2,
                "variant": "primary"
            },
            "label": "Create Organization"
        }
    }
}