README
Adobe I/O Runtime Lib
Installing
$ npm install @adobe/aio-lib-runtime
Usage
- Initialize the SDK
const sdk = require('@adobe/aio-lib-runtime')
async function sdkTest() {
//initialize sdk
const client = await sdk.init('<tenant>', 'x-api-key', '<valid auth token>')
}
- Call methods using the initialized SDK
const sdk = require('@adobe/aio-lib-runtime')
async function sdkTest() {
// initialize sdk
const client = await sdk.init('<tenant>', 'x-api-key', '<valid auth token>')
// call methods
try {
// get... something
const result = await client.getSomething({})
console.log(result)
} catch (e) {
console.error(e)
}
}
Classes
- LogForwarding
Log Forwarding management API
- LogForwardingLocalDestinationsProvider
Log Forwarding destination provider
- RuntimeAPI
This class provides methods to call your RuntimeAPI APIs. Before calling any method initialize the instance by calling the
init
method on it with valid options argument- Triggers
Functions
- prepareToBuildAction(zipFileName, action, root, dist) ⇒
Promise.<ActionBuild>
Will return data about an action ready to be built.
- zipActions(buildsList, lastBuildsPath, skipCheck) ⇒
Array.<string>
Will zip actions. By default only actions which were not built before will be zipped. Last built actions data will be used to validate which action needs zipping.
- deployActions(config, [deployConfig], [logFunc]) ⇒
Promise.<object>
runs the command
- deployWsk(scriptConfig, manifestContent, logFunc, filterEntities) ⇒
Promise.<object>
- init(options) ⇒
Promise.<OpenwhiskClient>
Returns a Promise that resolves with a new RuntimeAPI object.
- printActionLogs(config, logger, limit, filterActions, strip, tail, fetchLogsInterval, startTime) ⇒
object
Prints action logs.
- undeployActions(config, [logFunc])
- undeployWsk(packageName, manifestContent, owOptions, logger) ⇒
Promise.<void>
- getIncludesForAction(action) ⇒
Promise.<Array.<IncludeEntry>>
Gets the list of files matching the patterns defined by action.include
- printLogs(activation, strip, logger)
Prints activation logs messages.
- printFilteredActionLogs(runtime, logger, limit, filterActions, strip, startTime) ⇒
object
Filters and prints action logs.
- getActionEntryFile(pkgJsonPath) ⇒
string
returns path to main function as defined in package.json OR default of index.js note: file MUST exist, caller's responsibility, this method will throw if it does not exist
- zip(filePath, out, pathInZip) ⇒
Promise
Zip a file/folder using archiver
- createKeyValueObjectFromArray(inputsArray) ⇒
object
returns key value pairs in an object from the key value array supplied. Used to create parameters object.
- createKeyValueArrayFromObject(object) ⇒
Array
returns key value array from the object supplied.
- safeParse(val) ⇒
object
returns JSON.parse of passed object, but handles exceptions, and numeric strings
- createKeyValueArrayFromFlag(flag) ⇒
Array
returns key value array from the parameters supplied. Used to create --param and --annotation key value pairs
- createKeyValueArrayFromFile(file) ⇒
Array
returns key value array from the json file supplied. Used to create --param-file and annotation-file key value pairs
- createKeyValueObjectFromFlag(flag) ⇒
object
returns key value pairs in an object from the parameters supplied. Used to create --param and --annotation key value pairs
- parsePackageName(name) ⇒
object
parses a package name string and returns the namespace and entity name for a package
- getKeyValueArrayFromMergedParameters(params, paramFilePath) ⇒
Array
returns key value array from the params and/or param-file supplied with more precendence to params.
- getKeyValueObjectFromMergedParameters(params, paramFilePath) ⇒
object
returns key value object from the params and/or param-file supplied with more precendence to params.
- createKeyValueObjectFromFile(file) ⇒
object
returns key value pairs from the parameters supplied. Used to create --param-file and --annotation-file key value pairs
- createComponentsFromSequence(sequenceAction) ⇒
object
Creates an object representation of a sequence.
createComponentsFromSequence(sequenceAction) ⇒object
- returnUnion(firstObject, secondObject) ⇒
object
Creates a union of two objects
- parsePathPattern(path) ⇒
Array
Parse a path pattern
- processInputs(input, params) ⇒
object
Process inputs
- createKeyValueInput(input) ⇒
object
Create a key-value object from the input
- getDeploymentPath() ⇒
string
Get the deployment yaml file path
- getManifestPath() ⇒
string
Get the manifest yaml file path
- returnDeploymentTriggerInputs(deploymentPackages) ⇒
object
Get the deployment trigger inputs.
- returnAnnotations(action) ⇒
object
Get the annotations for an action
- createApiRoutes(pkg, pkgName, apiName, allowedActions, allowedSequences, pathOnly) ⇒
Array.<OpenWhiskEntitiesRoute>
Creates an array of route definitions from the given manifest-based package. See https://github.com/apache/openwhisk-wskdeploy/blob/master/parsers/manifest_parser.go#L1187
- createSequenceObject(fullName, manifestSequence, packageName) ⇒
OpenWhiskEntitiesAction
Create a sequence object that is compatible with the OpenWhisk API from a parsed manifest object
- checkWebFlags(flag) ⇒
object
Check the web flags
- createActionObject(fullName, manifestAction) ⇒
OpenWhiskEntitiesAction
Create an action object compatible with the OpenWhisk API from an action object parsed from the manifest.
- processPackage(packages, deploymentPackages, deploymentTriggers, params, [namesOnly], [owOptions]) ⇒
OpenWhiskEntities
Process the manifest and deployment content and returns deployment entities.
- setPaths(flags) ⇒
DeploymentFileComponents
Get the deployment file components.
- setupAdobeAuth(actions, owOptions, imsOrgId)
Handle Adobe auth action dependency
This is a temporary solution and needs to be removed when headless apps will be able to validate against app-registry
This function stores the IMS organization id in the Adobe I/O cloud state library which is required by the headless validator.
The IMS org id must be stored beforehand in
@adobe/aio-lib-core-config
under the'project.org.ims_org_id'
key. TODO: pass in imsOrgId- deployPackage(entities, ow, logger, imsOrgId)
Deploy all processed entities: can deploy packages, actions, triggers, rules and apis.
- undeployPackage(entities, ow, logger)
Undeploy all processed entities: can undeploy packages, actions, triggers, rules and apis. Entity definitions do not need to be complete, only the names are needed for un-deployment.
- syncProject(projectName, manifestPath, manifestContent, entities, ow, logger, imsOrgId, deleteEntities)
Sync a project. This is a higher level function that can be used to sync a local manifest with deployed entities.
syncProject
doesn't only deploy entities it might also undeploy entities that are not defined in the manifest. This behavior can be disabled via thedeleteEntities
boolean parameter.- getProjectEntities(project, isProjectHash, ow) ⇒
Promise.<OpenWhiskEntities>
Get deployed entities for a managed project. This methods retrieves all the deployed entities for a given project name or project hash. This only works if the project was deployed using the
whisk-managed
annotation. This annotation can be set pre-deployement using[addManagedProjectAnnotations](#addmanagedprojectannotations)
.Note that returned apis will always be empty as they don't support annotations and hence are not managed as part of a project.
- addManagedProjectAnnotations(entities, manifestPath, projectName, projectHash)
Add the
whisk-managed
annotation to processed entities. This is needed for syncing managed projects.- getProjectHash(manifestContent) ⇒
string
Compute the project hash based on the manifest content string. This is used for syncing managed projects.
- findProjectHashOnServer(ow, projectName) ⇒
Promise.<string>
Retrieve the project hash from a deployed managed project.
findProjectHashOnServer(ow, projectName) ⇒Promise.<string>
Retrieve the project hash from a deployed managed project.
- _relApp(root, p) ⇒
string
Path relative to the root
- _absApp(root, p) ⇒
string
Absolute path
- checkOpenWhiskCredentials(config)
Checks the existence of required openwhisk credentials
- getActionUrls(appConfig, isRemoteDev, isLocalDev) ⇒
object
Returns action URLs based on the manifest config
- urlJoin(...args) ⇒
string
Joins url path parts
- removeProtocolFromURL(url) ⇒
string
- replacePackagePlaceHolder(config) ⇒
object
- validateActionRuntime(action)
Checks the validity of nodejs version in action definition and throws an error if invalid.
- getActionZipFileName(pkgName, actionName, defaultPkg) ⇒
string
Returns the action's build file name without the .zip extension
- getActionNameFromZipFile(zipFile) ⇒
string
Returns the action name based on the zipFile name.
- activationLogBanner(logFunc, activation, activationLogs)
Creates an info banner for an activation.
- actionBuiltBefore(lastBuildsData, actionBuildData) ⇒
boolean
Will tell if the action was built before based on it's contentHash.
- dumpActionsBuiltInfo(lastBuiltActionsPath, actionBuildData, prevBuildData) ⇒
Promise.<boolean>
Will dump the previously actions built data information.
Typedefs
- ActionBuild :
object
- OpenwhiskOptions :
object
- OpenwhiskRetryOptions :
object
- OpenwhiskClient :
object
- ManifestPackages :
Array.<ManifestPackage>
The entry point to the information read from the manifest, this can be extracted using setPaths.
- ManifestPackage :
object
The manifest package definition
- ManifestAction :
object
The manifest action definition
- IncludeEntry :
object
- ManifestSequence :
object
The manifest sequence definition TODO: see https://github.com/apache/openwhisk-wskdeploy/blob/master/specification/html/spec_sequences.md
- ManifestTrigger :
object
The manifest trigger definition TODO: see https://github.com/apache/openwhisk-wskdeploy/blob/master/specification/html/spec_triggers.md
- ManifestRule :
object
The manifest rule definition TODO: see https://github.com/apache/openwhisk-wskdeploy/blob/master/specification/html/spec_rules.md
- ManifestDependency :
object
The manifest dependency definition TODO
- OpenWhiskEntities :
object
The OpenWhisk entities definitions, which are compatible with the
openwhisk
node client module. Can be obtained using (processpackage)[#processpackage] (withonlyNames=true
for un-deployment)- OpenWhiskEntitiesRoute :
object
The api entity definition
- OpenWhiskEntitiesAction :
object
The action entity definition TODO
- OpenWhiskEntitiesRule :
object
The rule entity definition TODO
- OpenWhiskEntitiesTrigger :
object
The trigger entity definition TODO
- OpenWhiskEntitiesPackage :
object
The package entity definition TODO
- DeploymentPackages :
Array.<object>
The entry point to the information read from the deployment file, this can be extracted using setPaths. TODO
- DeploymentFileComponents :
object
LogForwarding
Log Forwarding management API
Kind: global class
- LogForwarding
- .get() ⇒
Promise.<*>
.setAdobeIoRuntime() ⇒Promise.<(*|undefined)>
.setAzureLogAnalytics(customerId, sharedKey, logType) ⇒Promise.<(*|undefined)>
.setSplunkHec(host, port, index, hecToken) ⇒Promise.<(*|undefined)>
- .getSupportedDestinations() ⇒
Array.<object>
- .getDestinationSettings(destination) ⇒
Array.<object>
- .setDestination(destination, config) ⇒
Promise.<*>
- .getErrors() ⇒
object
- .get() ⇒
Promise.<*>
logForwarding.get() ⇒ Get current Log Forwarding settings
Kind: instance method of LogForwarding
Returns: Promise.<*>
- response from get API
Promise.<(*|undefined)>
logForwarding.setAdobeIoRuntime() ⇒
Promise.<(*|undefined)>
Deprecated
Set Log Forwarding to Adobe I/O Runtime (default behavior)
Kind: instance method of LogForwarding
Returns: Promise.<(*|undefined)>
- response from set API
Promise.<(*|undefined)>
logForwarding.setAzureLogAnalytics(customerId, sharedKey, logType) ⇒
Promise.<(*|undefined)>
Deprecated
Set Log Forwarding to Azure Log Analytics
Kind: instance method of LogForwarding
Returns: Promise.<(*|undefined)>
- response from set API
Param | Type | Description |
---|---|---|
customerId | string |
customer ID |
sharedKey | string |
shared key |
logType | string |
log type |
Promise.<(*|undefined)>
logForwarding.setSplunkHec(host, port, index, hecToken) ⇒
Promise.<(*|undefined)>
Deprecated
Set Log Forwarding to Splunk HEC
Kind: instance method of LogForwarding
Returns: Promise.<(*|undefined)>
- response from set API
Param | Type | Description |
---|---|---|
host | string |
host |
port | string |
port |
index | string |
index |
hecToken | string |
hec token |
Array.<object>
logForwarding.getSupportedDestinations() ⇒ Get supported destinations
Kind: instance method of LogForwarding
Returns: Array.<object>
- in format: { value:
Array.<object>
logForwarding.getDestinationSettings(destination) ⇒ Get destination settings
Kind: instance method of LogForwarding
Returns: Array.<object>
- in format: { name:
Param | Type | Description |
---|---|---|
destination | string |
Destination name |
Promise.<*>
logForwarding.setDestination(destination, config) ⇒ Configure destination
Kind: instance method of LogForwarding
Returns: Promise.<*>
- response from set API
Param | Type | Description |
---|---|---|
destination | string |
Destination name |
config | object |
value-pairs of settings, specific to the destination |
object
logForwarding.getErrors() ⇒ Get log forwarding errors
Kind: instance method of LogForwarding
Returns: object
- Errors in format { destination: '
LogForwardingLocalDestinationsProvider
Log Forwarding destination provider
Kind: global class
- LogForwardingLocalDestinationsProvider
- .getSupportedDestinations() ⇒
Array.<object>
- .getDestinationSettings(destination) ⇒
Array.<object>
- .getSupportedDestinations() ⇒
Array.<object>
logForwardingLocalDestinationsProvider.getSupportedDestinations() ⇒ Get supported destinations
Kind: instance method of LogForwardingLocalDestinationsProvider
Returns: Array.<object>
- in format: { value:
Array.<object>
logForwardingLocalDestinationsProvider.getDestinationSettings(destination) ⇒ Get destination settings
Kind: instance method of LogForwardingLocalDestinationsProvider
Returns: Array.<object>
- in format: { name:
Param | Type | Description |
---|---|---|
destination | string |
Destination name |
RuntimeAPI
This class provides methods to call your RuntimeAPI APIs.
Before calling any method initialize the instance by calling the init
method on it
with valid options argument
Promise.<OpenwhiskClient>
runtimeAPI.init(options) ⇒ Initializes a RuntimeAPI object and returns it.
Kind: instance method of RuntimeAPI
Returns: Promise.<OpenwhiskClient>
- a RuntimeAPI object
Param | Type | Description |
---|---|---|
options | OpenwhiskOptions |
options for initialization |
Triggers
Kind: global class
- Triggers
- new Triggers()
- .create(options) ⇒
Promise.<object>
- .delete(options) ⇒
Promise.<object>
new Triggers()
A class to manage triggers
Promise.<object>
triggers.create(options) ⇒ Creates a trigger and associated feeds
Kind: instance method of Triggers
Returns: Promise.<object>
- the result of the create operation
Param | Type | Description |
---|---|---|
options | object |
input options to create the trigger from manifest |
Promise.<object>
triggers.delete(options) ⇒ Deletes a trigger and associated feeds
Kind: instance method of Triggers
Returns: Promise.<object>
- the result of the delete operation
Param | Type | Description |
---|---|---|
options | object |
options with the name of the trigger |
Promise.<ActionBuild>
prepareToBuildAction(zipFileName, action, root, dist) ⇒ Will return data about an action ready to be built.
Kind: global function
Returns: Promise.<ActionBuild>
- Relevant data for the zip process..
Param | Type | Description |
---|---|---|
zipFileName | string |
the action's build file name without the .zip extension. |
action | object |
Data about the Action. |
root | string |
root of the project. |
dist | string |
Path to the minimized version of the action code |
Array.<string>
zipActions(buildsList, lastBuildsPath, skipCheck) ⇒ Will zip actions. By default only actions which were not built before will be zipped. Last built actions data will be used to validate which action needs zipping.
Kind: global function
Returns: Array.<string>
- Array of zipped actions.
Param | Type | Description |
---|---|---|
buildsList | Array.<ActionBuild> |
Array with data about actions available to be zipped. |
lastBuildsPath | string |
Path to the last built actions data. |
skipCheck | boolean |
when true will zip all the actions from the buildsList |
Promise.<object>
deployActions(config, [deployConfig], [logFunc]) ⇒ runs the command
Kind: global function
Returns: Promise.<object>
- deployedEntities
Param | Type | Default | Description |
---|---|---|---|
config | object |
app config | |
[deployConfig] | object |
{} |
deployment config |
[deployConfig.isLocalDev] | boolean |
local dev flag | |
[deployConfig.filterEntities] | object |
add filters to deploy only specified OpenWhisk entities | |
[deployConfig.filterEntities.actions] | Array |
filter list of actions to deploy by provided array, e.g. ['name1', ..] | |
[deployConfig.filterEntities.byBuiltActions] | boolean |
if true, trim actions from the manifest based on the already built actions | |
[deployConfig.filterEntities.sequences] | Array |
filter list of sequences to deploy, e.g. ['name1', ..] | |
[deployConfig.filterEntities.triggers] | Array |
filter list of triggers to deploy, e.g. ['name1', ..] | |
[deployConfig.filterEntities.rules] | Array |
filter list of rules to deploy, e.g. ['name1', ..] | |
[deployConfig.filterEntities.apis] | Array |
filter list of apis to deploy, e.g. ['name1', ..] | |
[deployConfig.filterEntities.dependencies] | Array |
filter list of package dependencies to deploy, e.g. ['name1', ..] | |
[logFunc] | object |
custom logger function |
Promise.<object>
deployWsk(scriptConfig, manifestContent, logFunc, filterEntities) ⇒ Kind: global function
Returns: Promise.<object>
- deployedEntities
Param | Type | Description |
---|---|---|
scriptConfig | object |
config |
manifestContent | object |
manifest |
logFunc | object |
custom logger function |
filterEntities | object |
entities (actions, sequences, triggers, rules etc) to be filtered |
object
deployWsk~_filterOutPackageEntity(pkgName, pkgEntity, filterItems, fullNameCheck) ⇒ Kind: inner method of deployWsk
Returns: object
- package object containing only the filterItems
Param | Type | Description |
---|---|---|
pkgName | object |
name of the package |
pkgEntity | object |
package object from the manifest |
filterItems | object |
items (actions, sequences, triggers, rules etc) to be filtered |
fullNameCheck | boolean |
true if the items are part of packages (actions and sequences) |
Promise.<OpenwhiskClient>
init(options) ⇒ Returns a Promise that resolves with a new RuntimeAPI object.
Kind: global function
Returns: Promise.<OpenwhiskClient>
- a Promise with a RuntimeAPI object
Param | Type | Description |
---|---|---|
options | OpenwhiskOptions |
options for initialization |
object
printActionLogs(config, logger, limit, filterActions, strip, tail, fetchLogsInterval, startTime) ⇒ Prints action logs.
Kind: global function
Returns: object
- activation timestamp of the last retrieved activation or null
Param | Type | Default | Description |
---|---|---|---|
config | object |
openwhisk config | |
logger | object |
an instance of a logger to emit messages to | |
limit | number |
maximum number of activations to fetch logs from | |
filterActions | Array |
array of actions to fetch logs from examples:- ['pkg1/'] = logs of all deployed actions under package pkg1 ['pkg1/action'] = logs of action 'action' under package 'pkg1' [] = logs of all actions in the namespace | |
strip | boolean |
if true, strips the timestamp which prefixes every log line | |
tail | boolean |
false |
if true, logs are fetched continuously |
fetchLogsInterval | number |
10000 |
number of seconds to wait before fetching logs again when tail is set to true |
startTime | number |
time in milliseconds. Only logs after this time will be fetched |
undeployActions(config, [logFunc])
Kind: global function
Param | Type | Description |
---|---|---|
config | object |
app config |
[logFunc] | object |
custom logger function |
Promise.<void>
undeployWsk(packageName, manifestContent, owOptions, logger) ⇒ Kind: global function
Returns: Promise.<void>
- void
Param | Type | Description |
---|---|---|
packageName | string |
name of the package to be undeployed |
manifestContent | object |
manifest |
owOptions | object |
openwhisk options |
logger | object |
custom logger function |
Promise.<Array.<IncludeEntry>>
getIncludesForAction(action) ⇒ Gets the list of files matching the patterns defined by action.include
Kind: global function
Returns: Promise.<Array.<IncludeEntry>>
- list of files matching the patterns defined by action.include
Param | Type | Description |
---|---|---|
action | ManifestAction |
action object from manifest which defines includes |
printLogs(activation, strip, logger)
Prints activation logs messages.
Kind: global function
Param | Type | Description |
---|---|---|
activation | object |
the activation |
strip | boolean |
if true, strips the timestamp which prefixes every log line |
logger | object |
an instance of a logger to emit messages to |
object
printFilteredActionLogs(runtime, logger, limit, filterActions, strip, startTime) ⇒ Filters and prints action logs.
Kind: global function
Returns: object
- activation timestamp of the last retrieved activation or null
Param | Type | Default | Description |
---|---|---|---|
runtime | object |
runtime (openwhisk) object | |
logger | object |
an instance of a logger to emit messages to (may optionally provide logFunc and bannerFunc to customize logging) | |
limit | number |
maximum number of activations to fetch logs from | |
filterActions | Array |
array of actions to fetch logs from ['pkg1/'] = logs of all deployed actions under package pkg1 ['pkg1/action'] = logs of action 'action' under package 'pkg1' [] = logs of all actions in the namespace | |
strip | boolean |
false |
if true, strips the timestamp which prefixes every log line |
startTime | number |
0 |
time in milliseconds. Only logs after this time will be fetched |
boolean
printFilteredActionLogs~isSequenceActivation(activation) ⇒ Check if an activation entry is for a sequence.
Kind: inner method of printFilteredActionLogs
Returns: boolean
- isSequenceActivation
Param | Type | Description |
---|---|---|
activation | * |
activation log entry |
printFilteredActionLogs~printActivationLogs(activation, runtime)
Print activation logs
Kind: inner method of printFilteredActionLogs
Param | Type | Description |
---|---|---|
activation | object |
activation object |
runtime | object |
runtime object |
printFilteredActionLogs~printSequenceLogs(activation, runtime)
Print sequence logs
Kind: inner method of printFilteredActionLogs
Param | Type | Description |
---|---|---|
activation | object |
sequence activation |
runtime | object |
runtime object |
printFilteredActionLogs~printLogs(activation, runtime)
Print logs
Kind: inner method of printFilteredActionLogs
Param | Type | Description |
---|---|---|
activation | object |
activation |
runtime | object |
runtime |
string
getActionEntryFile(pkgJsonPath) ⇒ returns path to main function as defined in package.json OR default of index.js note: file MUST exist, caller's responsibility, this method will throw if it does not exist
Kind: global function
Returns: string
- path to the entry file
Param | Type | Description |
---|---|---|
pkgJsonPath | string |
: path to a package.json file |
Promise
zip(filePath, out, pathInZip) ⇒ Zip a file/folder using archiver
Kind: global function
Returns: Promise
- returns with a blank promise when done
Param | Type | Default | Description |
---|---|---|---|
filePath | string |
path of file.folder to zip | |
out | string |
output path | |
pathInZip | boolean |
false |
internal path in zip |
object
createKeyValueObjectFromArray(inputsArray) ⇒ returns key value pairs in an object from the key value array supplied. Used to create parameters object.
Kind: global function
Returns: object
- An object of key value pairs in this format : {Your key1 : 'Your Value 1' , Your key2: 'Your value 2'}
Param | Type | Description |
---|---|---|
inputsArray | Array |
Array in the form of [{'key':'key1', 'value': 'value1'}] |
Array
createKeyValueArrayFromObject(object) ⇒ returns key value array from the object supplied.
Kind: global function
Returns: Array
- An array of key value pairs in this format : [{key : 'Your key 1' , value: 'Your value 1'}, {key : 'Your key 2' , value: 'Your value 2'} ]
Param | Type | Description |
---|---|---|
object | object |
JSON object |
object
safeParse(val) ⇒ returns JSON.parse of passed object, but handles exceptions, and numeric strings
Kind: global function
Returns: object
- the parsed object
Param | Type | Description |
---|---|---|
val | string |
value to parse |
Array
createKeyValueArrayFromFlag(flag) ⇒ returns key value array from the parameters supplied. Used to create --param and --annotation key value pairs
Kind: global function
Returns: Array
- An array of key value pairs in this format : [{key : 'Your key 1' , value: 'Your value 1'}, {key : 'Your key 2' , value: 'Your value 2'} ]
Param | Type | Description |
---|---|---|
flag | Array |
value from flags.param or flags.annotation |
Array
createKeyValueArrayFromFile(file) ⇒ returns key value array from the json file supplied. Used to create --param-file and annotation-file key value pairs
Kind: global function
Returns: Array
- An array of key value pairs in this format : [{key : 'Your key 1' , value: 'Your value 1'}, {key : 'Your key 2' , value: 'Your value 2'} ]
Param | Type | Description |
---|---|---|
file | string |
from flags['param-file'] or flags['annotation-file] |
object
createKeyValueObjectFromFlag(flag) ⇒ returns key value pairs in an object from the parameters supplied. Used to create --param and --annotation key value pairs
Kind: global function
Returns: object
- An object of key value pairs in this format : {Your key1 : 'Your Value 1' , Your key2: 'Your value 2'}
Param | Type | Description |
---|---|---|
flag | Array |
from flags.param or flags.annotation |
object
parsePackageName(name) ⇒ parses a package name string and returns the namespace and entity name for a package
Kind: global function
Returns: object
- An object { namespace: string, name: string }
Param | Type | Description |
---|---|---|
name | string |
package name |
Array
getKeyValueArrayFromMergedParameters(params, paramFilePath) ⇒ returns key value array from the params and/or param-file supplied with more precendence to params.
Kind: global function
Returns: Array
- An array of key value pairs in this format : [{key : 'Your key 1' , value: 'Your value 1'}, {key : 'Your key 2' , value: 'Your value 2'} ]
Param | Type | Description |
---|---|---|
params | Array |
from flags.param or flags.annotation |
paramFilePath | string |
from flags['param-file'] or flags['annotation-file'] |
object
getKeyValueObjectFromMergedParameters(params, paramFilePath) ⇒ returns key value object from the params and/or param-file supplied with more precendence to params.
Kind: global function
Returns: object
- An object of key value pairs in this format : {Your key1 : 'Your Value 1' , Your key2: 'Your value 2'}
Param | Type | Description |
---|---|---|
params | Array |
from flags.param or flags.annotation |
paramFilePath | string |
from flags['param-file'] or flags['annotation-file'] |
object
createKeyValueObjectFromFile(file) ⇒ returns key value pairs from the parameters supplied. Used to create --param-file and --annotation-file key value pairs
Kind: global function
Returns: object
- An object of key value pairs in this format : {Your key1 : 'Your Value 1' , Your key2: 'Your value 2'}
Param | Type | Description |
---|---|---|
file | string |
from flags['param-file'] or flags['annotation-file'] |
object
createComponentsFromSequence(sequenceAction) ⇒ Creates an object representation of a sequence.
Kind: global function
Returns: object
- the object representation of the sequence
Param | Type | Description |
---|---|---|
sequenceAction | Array |
the sequence action array |
object
createComponentsFromSequence(sequenceAction) ⇒
object
Deprecated
Kind: global function
Returns: object
- the object representation of the sequence
Param | Type | Description |
---|---|---|
sequenceAction | Array |
the sequence action array |
object
returnUnion(firstObject, secondObject) ⇒ Creates a union of two objects
Kind: global function
Returns: object
- the union of both objects
Param | Type | Description |
---|---|---|
firstObject | object |
the object to merge into |
secondObject | object |
the object to merge from |
Array
parsePathPattern(path) ⇒ Parse a path pattern
Kind: global function
Returns: Array
- array of matches
Param | Type | Description |
---|---|---|
path | string |
the path to parse |
object
processInputs(input, params) ⇒ Process inputs
Kind: global function
Returns: object
- the processed inputs
Param | Type | Description |
---|---|---|
input | object |
the input object to process |
params | object |
the parameters for the input to process |
object
createKeyValueInput(input) ⇒ Create a key-value object from the input
Kind: global function
Returns: object
- the processed input as a key-value object
Param | Type | Description |
---|---|---|
input | object |
the input to process |
string
getDeploymentPath() ⇒ Get the deployment yaml file path
Kind: global function
Returns: string
- the deployment yaml path
string
getManifestPath() ⇒ Get the manifest yaml file path
Kind: global function
Returns: string
- the manifest yaml path
object
returnDeploymentTriggerInputs(deploymentPackages) ⇒ Get the deployment trigger inputs.
Kind: global function
Returns: object
- the deployment trigger inputs
Param | Type | Description |
---|---|---|
deploymentPackages | DeploymentPackages |
the deployment packages |
object
returnAnnotations(action) ⇒ Get the annotations for an action
Kind: global function
Returns: object
- the action annotation entities
Param | Type | Description |
---|---|---|
action | ManifestAction |
the action manifest object |
Array.<OpenWhiskEntitiesRoute>
createApiRoutes(pkg, pkgName, apiName, allowedActions, allowedSequences, pathOnly) ⇒ Creates an array of route definitions from the given manifest-based package. See https://github.com/apache/openwhisk-wskdeploy/blob/master/parsers/manifest_parser.go#L1187
Kind: global function
Returns: Array.<OpenWhiskEntitiesRoute>
- the array of route entities
Param | Type | Description |
---|---|---|
pkg | ManifestPackage |
The package definition from the manifest. |
pkgName | string |
The name of the package. |
apiName | string |
The name of the HTTP API definition from the manifest. |
allowedActions | Array |
List of action names allowed to be used in routes. |
allowedSequences | Array |
List of sequence names allowed to be used in routes. |
pathOnly | boolean |
Skip action, method and response type in route definitions. |
OpenWhiskEntitiesAction
createSequenceObject(fullName, manifestSequence, packageName) ⇒ Create a sequence object that is compatible with the OpenWhisk API from a parsed manifest object
Kind: global function
Returns: OpenWhiskEntitiesAction
- a sequence object describing the action entity
Param | Type | Description |
---|---|---|
fullName | string |
the full sequence name prefixed with the package, e.g. pkg/sequence |
manifestSequence | ManifestSequence |
a sequence object as defined in a valid manifest file |
packageName | string |
the package name of the sequence, which will be set to for actions in the sequence |
object
checkWebFlags(flag) ⇒ Check the web flags
Kind: global function
Returns: object
- object with the appropriate web flags for an action
Param | Type | Description |
---|---|---|
flag | string | boolean |
the flag to check |
OpenWhiskEntitiesAction
createActionObject(fullName, manifestAction) ⇒ Create an action object compatible with the OpenWhisk API from an action object parsed from the manifest.
Kind: global function
Returns: OpenWhiskEntitiesAction
- the action entity object
Param | Type | Description |
---|---|---|
fullName | string |
the full action name prefixed with the package, e.g. pkg/action |
manifestAction | ManifestAction |
the action object as parsed from the manifest |
OpenWhiskEntities
processPackage(packages, deploymentPackages, deploymentTriggers, params, [namesOnly], [owOptions]) ⇒ Process the manifest and deployment content and returns deployment entities.
Kind: global function
Returns: OpenWhiskEntities
- deployment entities
Param | Type | Default | Description |
---|---|---|---|
packages | ManifestPackages |
the manifest packages | |
deploymentPackages | DeploymentPackages |
the deployment packages | |
deploymentTriggers | object |
the deployment triggers | |
params | object |
the package params | |
[namesOnly] | boolean |
false |
if false, set the namespaces as well |
[owOptions] | object |
{} |
additional OpenWhisk options |
DeploymentFileComponents
setPaths(flags) ⇒ Get the deployment file components.
Kind: global function
Returns: DeploymentFileComponents
- fileComponents
Param | Type | Description |
---|---|---|
flags | object |
(manifest + deployment) |
setupAdobeAuth(actions, owOptions, imsOrgId)
Handle Adobe auth action dependency
This is a temporary solution and needs to be removed when headless apps will be able to validate against app-registry
This function stores the IMS organization id in the Adobe I/O cloud state library which is required by the headless validator.
The IMS org id must be stored beforehand in @adobe/aio-lib-core-config
under the
'project.org.ims_org_id'
key. TODO: pass in imsOrgId
Kind: global function
Param | Type | Description |
---|---|---|
actions | Array.<OpenWhiskEntitiesAction> |
the array of action deployment entities |
owOptions | object |
OpenWhisk options |
imsOrgId | string |
the IMS Org Id |
deployPackage(entities, ow, logger, imsOrgId)
Deploy all processed entities: can deploy packages, actions, triggers, rules and apis.
Kind: global function
Param | Type | Description |
---|---|---|
entities | OpenWhiskEntitiesAction |
the processed entities |
ow | object |
the OpenWhisk client |
logger | object |
the logger |
imsOrgId | string |
the IMS Org ID |
undeployPackage(entities, ow, logger)
Undeploy all processed entities: can undeploy packages, actions, triggers, rules and apis. Entity definitions do not need to be complete, only the names are needed for un-deployment.
Kind: global function
Param | Type | Description |
---|---|---|
entities | object |
the processed entities, only names are enough for undeploy |
ow | object |
the OpenWhisk object |
logger | object |
the logger |
syncProject(projectName, manifestPath, manifestContent, entities, ow, logger, imsOrgId, deleteEntities)
Sync a project. This is a higher level function that can be used to sync a local manifest with deployed entities.
syncProject
doesn't only deploy entities it might also undeploy entities that are not
defined in the manifest. This behavior can be disabled via the deleteEntities
boolean
parameter.
Kind: global function
Param | Type | Default | Description |
---|---|---|---|
projectName | string |
the project name | |
manifestPath | string |
the manifest path | |
manifestContent | string |
the manifest content, needed to compute hash | |
entities | OpenWhiskEntities |
the entities, extracted via processPackage |
|
ow | object |
the OpenWhisk object | |
logger | object |
the logger | |
imsOrgId | string |
the IMS Org ID | |
deleteEntities | boolean |
true |
set to true to delete entities |
Promise.<OpenWhiskEntities>
getProjectEntities(project, isProjectHash, ow) ⇒ Get deployed entities for a managed project. This methods retrieves all the deployed
entities for a given project name or project hash. This only works if the project was
deployed using the whisk-managed
annotation. This annotation can be set
pre-deployement using [addManagedProjectAnnotations](#addmanagedprojectannotations)
.
Note that returned apis will always be empty as they don't support annotations and hence are not managed as part of a project.
Kind: global function
Returns: Promise.<OpenWhiskEntities>
- the deployed project entities
Param | Type | Description |
---|---|---|
project | string |
the project name or hash |
isProjectHash | boolean |
set to true if the project is a hash, and not the name |
ow | object |
the OpenWhisk client object |
addManagedProjectAnnotations(entities, manifestPath, projectName, projectHash)
Add the whisk-managed
annotation to processed entities. This is needed for syncing
managed projects.
Kind: global function
Param | Type | Description |
---|---|---|
entities | OpenWhiskEntities |
the processed entities |
manifestPath | string |
the manifest path |
projectName | string |
the project name |
projectHash | string |
the project hash |
string
getProjectHash(manifestContent) ⇒ Compute the project hash based on the manifest content string. This is used for syncing managed projects.
Kind: global function
Returns: string
- the project hash
Param | Type | Description |
---|---|---|
manifestContent | string |
the manifest content |
Promise.<string>
findProjectHashOnServer(ow, projectName) ⇒ Retrieve the project hash from a deployed managed project.
Kind: global function
Returns: Promise.<string>
- the project hash, or '' if not found
Param | Type | Description |
---|---|---|
ow | object |
the OpenWhisk client object |
projectName | string |
the project name |
Promise.<string>
findProjectHashOnServer(ow, projectName) ⇒
Promise.<string>
Deprecated
Retrieve the project hash from a deployed managed project.
Kind: global function
Returns: Promise.<string>
- the project hash, or '' if not found
Param | Type | Description |
---|---|---|
ow | object |
the OpenWhisk client object |
projectName | string |
the project name |
string
_relApp(root, p) ⇒ Path relative to the root
Kind: global function
Returns: string
- relative path
Param | Type | Description |
---|---|---|
root | string |
root path |
p | string |
path |
string
_absApp(root, p) ⇒ Absolute path
Kind: global function
Returns: string
- absolute path
Param | Type | Description |
---|---|---|
root | string |
root path |
p | string |
path |
checkOpenWhiskCredentials(config)
Checks the existence of required openwhisk credentials
Kind: global function
Param | Type | Description |
---|---|---|
config | object |
openwhisk config |
object
getActionUrls(appConfig, isRemoteDev, isLocalDev) ⇒ Returns action URLs based on the manifest config
Kind: global function
Returns: object
- urls of actions
Param | Type | Default | Description |
---|---|---|---|
appConfig | object |
app config | |
isRemoteDev | boolean |
false |
remote dev |
isLocalDev | boolean |
false |
local dev |
string
urlJoin(...args) ⇒ Joins url path parts
Kind: global function
Returns: string
- joined url
Param | Type | Description |
---|---|---|
...args | string |
url parts |
string
removeProtocolFromURL(url) ⇒ Kind: global function
Returns: string
- url
Param | Type | Description |
---|---|---|
url | string |
url |
object
replacePackagePlaceHolder(config) ⇒ Kind: global function
Returns: object
- sanitized config
Param | Type | Description |
---|---|---|
config | object |
config |
validateActionRuntime(action)
Checks the validity of nodejs version in action definition and throws an error if invalid.
Kind: global function
Param | Type | Description |
---|---|---|
action | object |
action object |
string
getActionZipFileName(pkgName, actionName, defaultPkg) ⇒ Returns the action's build file name without the .zip extension
Kind: global function
Returns: string
- name of zip file for the action contents
Param | Type | Description |
---|---|---|
pkgName | string |
name of the package |
actionName | string |
name of the action |
defaultPkg | boolean |
true if pkgName is the default/first package |
string
getActionNameFromZipFile(zipFile) ⇒ Returns the action name based on the zipFile name.
Kind: global function
Returns: string
- name of the action
Param | Type | Description |
---|---|---|
zipFile | string |
name of the zip file |
activationLogBanner(logFunc, activation, activationLogs)
Creates an info banner for an activation.
Kind: global function
Param | Type | Description |
---|---|---|
logFunc | object |
custom logger function |
activation | object |
activation metadata |
activationLogs | Array.<string> |
the logs of the activation (may selectively suppress banner if there are no log lines) |
boolean
actionBuiltBefore(lastBuildsData, actionBuildData) ⇒ Will tell if the action was built before based on it's contentHash.
Kind: global function
Returns: boolean
- true if the action was built before
Param | Type | Description |
---|---|---|
lastBuildsData | string |
Data with the last builds |
actionBuildData | object |
Object which contains action name and contentHash. |
Promise.<boolean>
dumpActionsBuiltInfo(lastBuiltActionsPath, actionBuildData, prevBuildData) ⇒ Will dump the previously actions built data information.
Kind: global function
Returns: Promise.<boolean>
- If the contentHash already belongs to the deploymentLogs file
Param | Type | Description |
---|---|---|
lastBuiltActionsPath | string |
Path to the deployments logs |
actionBuildData | object |
Object which contains action name and contentHash. |
prevBuildData | object |
Object which contains info about all the previously built actions |
object
ActionBuild : Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
outPath | string |
zip output path |
actionBuildData | object |
Object where key is the name of the action and value is its contentHash |
tempBuildDir | string |
path of temp build |
tempActionName | string |
name of the action file. |
object
OpenwhiskOptions : Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
apihost | string |
Hostname and optional port for openwhisk platform |
api_key | string |
Authorisation key |
[api] | string |
Full API URL |
[apiversion] | string |
Api version |
[namespace] | string |
Namespace for resource requests |
[ignore_certs] | boolean |
Turns off server SSL/TLS certificate verification |
[key] | string |
Client key to use when connecting to the apihost |
[retry] | OpenwhiskRetryOptions |
the retry options. Defaults to 2 retries, with a 200ms minTimeout. |
object
OpenwhiskRetryOptions : Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
retries | number |
the number of retries for an OpenWhisk call |
minTimeout | number |
the minimum number of milliseconds to wait before a retry |
object
OpenwhiskClient : Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
actions | ow.Actions |
actions |
activations | ow.Activations |
activations |
namespaces | ow.Namespaces |
namespaces |
packages | ow.Packages |
packages |
rules | ow.Rules |
rules |
triggers | ow.Triggers |
triggers |
routes | ow.Routes |
routes |
logForwarding | LogForwarding |
Log Forwarding management API |
Array.<ManifestPackage>
ManifestPackages : The entry point to the information read from the manifest, this can be extracted using setPaths.
object
ManifestPackage : The manifest package definition
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
version | string |
the manifest package version |
[license] | string |
the m |