wediaportal cli, hot-config and .wediaportalrc

Starting from 2022.2.0 we have changed the way the portal application is built and served locally (for development purposes). We have tried to smoothen the migration process, but you might find useful a bit of documentation.

wediaportal cli

wediaportalcli is a shell client based on yargs to provide tools around portal.

it can be invoked by running an npm command:

npm run wediaportal

As we are invoking the cli through npm, we need to pass a double hyphen (--) to pass arguments. For instance, accessing the help would be done like this

npm run wediaportal -- --help

or

npm run wediaportal -- -h

The wediaportal cli provides commands. You must pass a command with this pattern :

Available commands can be retrieved by running help or by not providing a command. In such case, the cli will return the list of available commands and a brief description.

Most wediaportal commands require an environment on which to perform the action. The environment is passed as the second positional argument (first is command). If you don’t pass an environment, the cli will assume you want to work on your default environment.

For instance, assuming the resolved .wediaportalrc file has the following shape:

Following commands are equivalent:

(and because default is an alias without changes of “my-customer”, it is also equivalent to

npm shortcuts

The npm commands build and serve have been rewired to use wediaportal:

serve

You can still pass options to npm run serve :

build

You can still pass options to npm run build :

It is possible to build several targets with only one command:

will build plugins for both environments

When specifying multiple environments, property vue_apps_base_url.portal must be common among all environments

Common options of the cli

The cli provides many optional arguments. Some of them are common and early resolved:

--verbose or -v trace|debug|info|warn|error

Allows to define a verbosity level

--log-depth <number=2>

Define max depth for logging objects and arrays

hot-config.html

When serving portal on development, a special URL can be accessed through the browser:

/hot-config.html

This URL allows you to make hot changes to your running configuration.

.wediaportalrc

What is the .wediaportalrc file?

The .wediaportalrc is a JSON file that contains environment configuration for serving and building the portal application.

NOTE: when parsed, a JSON5 parser is used ; this means that the JSON stream is much more permissive than a regular JSON is expected to be ; in particular, you are allowed to add single line comments //, block comments /* */, un-ambiguous keys are not to be double-quoted…

Extending a .wediaportalrc

Starting from 2023.3, .wediaportalrc files can be extended. Using the root property extends, you can specify which wediaportalrc file the current file is extending.

This can be useful especially when different members of the team are running their local server with different configurations.

Given the integration server is available at https://project-int.wedia-group.com
Given team member 1 uses a server available at http://localhost:8080/project
Given team member 2 uses a server available at http://localhost:8082/project

it is possible to define a project wise configuration:

team can agree to exclude .wediaportalrc_private from git:

team member1 and team member 2can define in .env.local that they wants to use .wediaportalrc_private

team member 1 will create .wediaportalrc_private as extending .wediaportalrc with his own environment:

team member 2 will do the same:

 

Interface of a .wediaportalrc file

Overview

The .wediaportalrc file can be described with the following typescript definition:

Detailed documentation for WediaEnvironment

property

type

default

description

property

type

default

description

deploy_server

string

http://localhost:8080

Server to which plugin(s) should be deployed

→ Change with a value such as https://<customer>-int.wedia-group.com

jspMode

boolean

true

Should landing pages be served by JSPs

→ You should not override

plugin_name

string

PACKAGED_Portal

The name of the plugin holding the portal source file

vue_app_analytics_session_name

string

portal

The type session attribute to use for analytics when using the portal application

→ You should not override

vue_app_analytics_session_name_asset_picker

string

assetpicker

The type session attribute to use for analytics when using the picker application

→ You should not override

vue_app_analytics_session_name_office_picker

string

officepicker

The type session attribute to use for analytics when using the officepicker application

→ You should not override

vue_app_api_path

string

(empty)

The path to the api service (useful only in dev)

→ Only override for development

vue_apps_base_url

object

  • adobeAssetPicker: Server's base path for accessing adobe asset picker. Must start and end with a /→ You should not override

  • assetPicker: Server's base path for accessing picker. Must start and end with a /→ You should not override

  • officeOutlookPicker: Server's base path for accessing office outlook content picker. Must start and end with a /→ You should not override

  • officeAssetPicker: Server's base path for accessing office content picker (except outlook). Must start and end with a /→ You should not override

  • portal: Server's base path for accessing portal. Must start and end with a /→ You should not override

  • wediaConfig: Server's base path for accessing wedia-config. Must start and end with a /→ You should not override

vue_app_base_url

string

/portal/

(DEPRECIATED since 2023.5.0) Server’s base path for accessing portal.

vue_app_base_url_asset_picker

string

/asset-picker/

(DEPRECIATED since 2023.5.0) Server’s base path for accessing picker.

vue_app_base_url_config

string

/wedia-config/

(DEPRECIATED since 2023.5.0) Server’s base path for accessing wedia-config.

vue_app_base_url_office_picker

string

/office-picker/

(DEPRECIATED since 2023.5.0) Server’s base path for accessing office content picker (except outlook).

vue_app_base_url_office_outlook_picker

string

/office-outlook-asset-picker/

(DEPRECIATED since 2023.5.0) Server’s base path for accessing office outlook content picker.

vue_app_bundle_basename

string

/_plugins/PACKAGED_VueAppI18n/config/plugin

Bundle path for portal resources

→ You should not override

vue_app_config_path

string

portal

Name of the mapping used by portal application

vue_app_config_plugin

string

PACKAGED_Portal

DEPRECATED

Name of the plugin holding the configuration.

vue_app_context

string

portal

The vue application context. Allows to always get an extra parameter to be used for bases for instance

→ You should not override

vue_app_context_asset_picker

string

assetpicker

see vue_app_context

vue_app_context_office_asset_picker

string

officeassetpicker

see vue_app_context

vue_app_cookie_auth

string

true

Use cookie auth

→ You should not override

vue_app_default_title

string

Wedia - Portal - Starter Kit

Default application title

vue_app_key

string

3c0122ccdc01abec45184bb7fcc344317c2c33d1

The key to use by the application

vue_app_name

string

portal-app

The default app name

vue_app_secret

string

(not shown)

the secret for the app

vue_app_config_server

boolean

false

Is the application configuration handled by server ?

configBases

string[]

['_portal', 'starter-kit']

Default bases

→ You should not override

configResolverPlugin

string

WXM_CONFIG_RESOLVER

The plugin computing configurations

→ You should not override