Bixby Developer Center

References

capsule

required

The capsule node contains metadata required by Bixby that specifies version information, device targets, and imported library capsules. It must be the only root node inside the capsule.bxb, which must live at the root directory of the capsule. For more information on how to set this file up, see Initializing Your Capsule.

Note

In addition to creating your capsule.bxb file, ensure you also configure your capsule, using the Configuration & Secrets UI in the Bixby Developer Center and/or your capsule.properties file.

Examples

capsule {
id (example.shirt)
version (0.1.0)
format(3)
targets {
target (can-en-US)
target (bixby-mobile-en-US)
}
capsule-imports {
import (viv.core) { as (core) }
import (viv.money) { as (money) }
import (viv.time) { as (time) }
}
}
capsule {
id (example.spaceResorts)
version (1.0.0)
format (3)
targets {
target (bixby-mobile-en-US)
target (bixby-mobile-ko-KR)
}
runtime-version (9) {
js-runtime-version (2)
}
capsule-imports {
import (viv.core) {
as (core)
}
import (viv.self) {
as (self)
version (4.0.25)
}
import (viv.time) {
as (time)
version (3.6.6)
}
import (viv.money) {
as (money)
version (2.22.56)
}
}
store-sections {
section (TravelAndTransportation)
}
store-countries {
all
}
permissions {
// Note: While this permission is declared, it is not being used
// and the user will not be prompted, because we are fetching an
// 'imaginary' mocked profile from viv.self. // This is done by
// passing an 'imaginary' flag to the self.GetProfile action, which
// we do on line 17 of models/actions/book/user-goals/CreateOrder.model.bxb: `value: self.Imaginary(true)`
// Commenting out that line will cause viv.self to fetch the user's
// profile instead of a mocked profile, and the user will be prompted
// for this 'profile' permission when viv.self tries to fetch it.
library-permission (self:profile)
}
}

View master on GitHub

capsule {
id (example.shirt)
version (2.13.0) //JSRS migration VCAP-24287
format (3)
runtime-version (7) {
js-runtime-version (2)
overrides {
allow-dialogs-on-detail-pages (true)
no-fallback-to-result-collections (true)
no-fallback-dialog-in-views (false)
}
}
targets {
target (bixby-mobile-en-US)
}
capsule-imports {
import (viv.core) {
as (core)
}
import (viv.money) {
as (money)
version (2.22.56)
}
import (viv.time) {
as (time)
version (3.6.6)
}
}
store-countries {
all
}
store-sections {
section (Shopping)
}
}

View master on GitHub

If your capsule is itself a library capsule, you will need to use the library key within the capsule block, which controls import rights. The following is an example:

capsule {
id (library.shirt)
version (0.1.0)
format(3)
targets {
target (can-en-US)
target (bixby-mobile-en-US)
}
library {
scope {
public
}
}
}

Child Keys

format
required
Indicates the capsule format version with which this capsule is compatible
id
required
The globally unique identifier for the capsule
capsule-categories
optional
The collection of categories in which your capsule participates
capsule-imports
optional
Lists the capsules that this one is dependent on
default-action
optional
Defines a default action to be executed if a user says an utterance that calls your capsule with named dispatch, but has no further action
device-models
optional
An explicit list of device models that you want your capsule to be available for
marketplace-constraints[deprecated]
optional
This key is deprecated
permissions
optional
Defines the permissions you are requesting from the user for this capsule
runtime-flags
optional
This key is deprecated
runtime-version
optional
Changes specific runtime behavior during the execution of the capsule depending on the version
store-countries
optional
Explicit list of Marketplace store countries in which your capsule will be available
store-sections
optional
Determines the collection of sections in the Marketplace store in which this capsule is visible
targets
optional
List the locale and target device supported by the capsule
version
optional
The capsule version