Version 17

    The following document is meant to provide some insight as to the options/availability for your jiveclientconfiguration.json file. For any questions about any of this information, please just comment on the document.

     

    jiveclientconfiguration.json Example

    {

        "clientUrl": "http://yourserver.yourhost.yourtld",

        "clientUrlExcludesPort" : true,

        "port": "8090",

        "development": true,

        "logLevel": "DEBUG",

        "logFile" : "logs/jive-sdk.log",

        "logFileSize" : 20480,

        "logFileNumBackups" : 3,

        "suppressHttpLogging": false,

        "persistence" : mongo,

        "databaseUri" : "mongodb://user1:password1@localhost/test",

        "ignoreExtensionRegistrationSource" : true,

        "suppressAddonRegistration" : true,

        "extensionInfo" : {

            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",

            "jiveServiceSignature" : "XXXXXXXXXXXXXXXXXX",

            "runAsStrategy" : "userid",

            "name" : "My Add-On",

            "description" : "This describes my add-on",

            "redirectURL" : "%serviceURL%/oauth/authorize",

            "health_url": "%serviceURL%/health",

            "config_url": "%serviceURL%/configure",

            "author" : "Developer Name",

            "author_affiliation" : "Developer Company",

            "author_email" : "developer@somedomain.com",

            "website_url": "http://www.somedomain.com",

            "community_url": "https://community.jivesoftware.com/xxxx",

            "support_info": "http://support.somedomain.com",

            "info_email": "info@somedomain.com",

            "tags": "jive,integration,service,addon",

            "overview": "overview.html",

            "install_instructions": "install_instructions.html",

            "eula_filename": "eula_filename.html",

            "privacy_policy": "privacy_policy.html",

            "screen_shots": ["myaddon-screenshot_1.png","myaddon-screenshot_2.png"]

        },

       "oauth2-webhooks" :{

            "clientOAuth2CallbackUrl" : "http://yourserver.yourhost.yourtld:8090/oauth/oauth2Callback"

        },

       "oauth2-example" :{

            "originServerAuthorizationUrl" : "https://yourremoteserver.yourhost.yourtld/oauth/authorize",

            "originServerTokenRequestUrl" : "https://yourremoteserver.yourhost.yourtld/oauth/token",

            "oauth2ConsumerKey" : "!!!_CHANGE_ME_DO_NOT_START_SERVER_WITH_OUT_A_REAL_ONE_FROM_PODIO!!!",

            "oauth2ConsumerSecret" : "!!!_CHANGE_ME_DO_NOT_START_SERVER_WITH_OUT_A_REAL_ONE_FROM_PODIO!!!"

        },

        "my-custom-config" : {

              "test" : {

                   "parameter" : "Hello World"

              }

         }

    }

              

     

    Field Definitions

    The following are a description of each field that you can use in the jiveclientconfiguration.json

     

    FieldDescription

    clientUrl

    (required)

    This property should always be set.  It is the protocol + host of your URI.

    Note:  This value needs to be a publicly resolvable hostname or IP address that routes to your middleware service (and/or resolvable by your Jive instance)

     

    Note:  If you know you are going to be bundling your Jive Add-On assets, you can use the http: value in this property for a clean disable.

    port

    (required)

    This property should always be set.

    clientUrlExcludesPort

    (optional)

    (true | false, default: false)

    This option is available in the event you want to include the port information in the clientUrl.

    development

    (optional, recommended for dev)

    (false | true, default: false)

    Setting to TRUE allows the service to not require validation against the App Market place or force a registration check.

    logLevel

    (optional, recommended for dev)

    DEBUG

    Other values include: INFO, ERROR

    logFile

    (optional, recommended)

    logs/jive-sdk.log

    Any file path relative to the root of the Node.js project.

    Note:  You may need to create any non-existing directories to allow the log file creation to success

    role

    (optional)

    worker, pusher, http (default:  undefined implies all functions)

    When using in a multi-node environment, you can tailor the role of each node.

     

    See: jive.constants.roles.(WORKER|PUSHER|HTTP_HANDLER)

    logFileSize

    (optional)

    20480

    Size in KB for file names.

    logFileNumBackups

    (optional)

    3

    Number of backup files to save.

    suppressHttpLogging

    (optional)

    true / false (default)

    customServiceLogger

    (optional)

    See: log4js  for details on the object format.

    scheduler

    (optional)

    If a string is provided, and it's a valid type exported in jive.scheduler, then use that.

    TODO:

    persistence

    (optional)

    (memory | file | mongo) (default: file)

    This configures your app's persistence model.  file/memory are OK for dev, but production should use mongo or comparable service

    See also: GitHub - jivesoftware/jive-persistence-postgres: jive-persistence-postgres

    persistenceInitializer

    (optional)

    Default the schema in your persistence

    monitoringInterval

    (optional)

    Value in seconds

    codeVersionString

    (optional)

    TODO:

    statsdClientConfig

    (optional)

    {

        host : "localhost",

        port: 8125,

        interval: 1000,

        servicePrefix: "jive"

    }

    See: GitHub - msiebuhr/node-statsd-client: Node.js client for statsd

    adminPort

    (optional)

    8091

    The monitoring service port

    suppressMonitoring

    (optional)

    true / (default: false)

    databaseUri

    (optional)

    Used in conjunction with persistence to define the persistence strategy.
    Example: mongodb://user1:password1@localhost/test

    ignoreExtensionRegistrationSource

    (optional)

    A flag that will tell the SDK to not bother trying to validate against the Add-On Registry.

    (true | false, default: false)

    skipCreateExtension

    (optional)

    false / (true : default)

    packageApps

    (optional)

    Used to configure your project for packaged apps at a global level (i.e. --apphosting="jive")

     

     

     

    Note: a new feature added in Jive SDK 0.2.17 in the Tile definition.json

    • "registerTileWhenPackaged" : true

     

    When added to a definition.json located in a tile directory (i.e. /tiles/TILE_NAME/definition.json) in your project, it will force the SDK to leave the register/unregister URLs on a Tile even when the Tile is apphosted inside Jive.  This is good for scenarios where you want to notify external systems of the Tile installation, but runtime dependencies are not required.

    packageAddOnConfigure

    (optional)

    Use this option if you want to package your addon configuration experience as well.  See: meta.json > config_url

    Values:

    • true - This will assume that your configuration path is resolved to the /public directory in your project.
    • false (or undefined) - Will not package the Add-On Configuration experience
    • (string) - A directory path that is appended to /public that gets prepended to the config_url value.
      • For example:  config_url = /abcdef/configure, with a value of /tiles the output path would be /public/tiles/abcdef/configure

     

    Note: A new feature added in Jive SDK 0.2.17 in the Tile definiton.json

    • "suppressTileDefinition" : true

     

    When added to a definition.json located in a tile directory (i.e. /tiles/TILE_NAME/definition.json) in your project, it will omit that Tile from the /definition.json generated for the extension.  It's a handy feature if you are trying to single source all your tile HTML/CSS/JS code into a single directory without having to manually manage.

    suppressAddonRegistration

    (optional)

    A flag that will tell the SDK to configure the Add-On extension.zip to not force a registration challenge when installed.  This is used primarily for simple Jive Apps.  (true | false, default: false)

    extensionInfo.uuid

    (optional, recommended)

    Locks in your Add-On UUID from ever-changing between builds and/or setting the ID for a specific app.

    Your UUID is very important to lock in once you start real development, especially when it comes to signing add-ons
    (see jiveServiceSignature, below)

    Note:  You will need to re-run the build process for the changes to take effect.

    extensionInfo.name

    (optional, recommended)

    Specify your app name that is seen in the Add-On Registration Screen.

    extensionInfo.description

    (optional, recommended)

    Specify your app description that is seen in the Add-On Registration Screen.

    extensionInfo.jiveServiceSignature

    (optional)

    Use this field to save the jiveServiceSignature from the Add-On Registration to complete the signing of your Add-On

    To obtain the jiveServiceSignature, Ctrl+Click (or Cmd+Click) on the Upload button in Add-On Registration to get the screen to sign your package. 
    You will need to paste in the Add-On UUID from extensionInfo.uuid.  Once you get the value, paste the signature pack into this property.

    TODO: LIST (IN DETAIL) BENEFITS OF SIGNING YOUR JIVE ADD-ON, ASK RYAN/MARK FOR DETAILS IN THE INTERIM

    Aron Racho

    extensionInfo.runAsStrategy

    (optional)

    Make API requests impersonating a different user. Accepts "email", "userid", "username", or "uri" (uri being the core v3 person uri)

    See: Core V3 API - Run-As Feature & Signed Add-Ons

    extensionInfo.registerURL

    (optional)

    A URL to POST a request when this Jive Add-on is installed or updated. This value may start with the token %serviceURL%.

    extensionInfo.unregisterURL

    (optional)

    A URL to POST a request when this Jive Add-on is uninstalled. This value may start with the token %serviceURL%.

    extensionInfo.redirectURL

    (optional)

    TODO:  CONFIRM BREADTH OF USE

    Aron Racho

    extensionInfo.config_url

    (optional)

    If you have Add-On specific configuration you wish to do at the point of Add-On installation.  Provide the URL to the your experience (defined in your Add-On), and Jive will instruct the Administrator to configure before using.

    Default: %serviceURL%/configure

    extensionInfo.health_url

    (optional)

    A URL that Jive can connect to to determine health and availability of the associated cloud service. See Add-On Health Check Format for detailed information.

    extensionInfo.website_url

    (optional)

    The URL of a web site or page presenting information about this Jive Add-on or the company that developed it.

    extensionInfo.community_url

    (optional)

    The URL of a web site or page where a user could learn more about, discuss, ask a question about, or report a problem with this Jive Add-on.

    extensionInfo.author

    (optional)

    The name of the add-on developer

    extensionInfo.author_affiliation

    (optional)

    The name of the add-on developer's company/affiliation group

    extensionInfo.author_email

    (optional)

    An email to contact the developer

    extensionInfo.support_info

    (optional)

    This may be either a URL or an email address where a user of this Jive Add-on can request assistance.

    extensionInfo.info_email

    (optional)

    An email address where a user can request detailed information about this Jive Add-on, prior to using or installing it.

    extensionInfo.tags

    (optional)

    The set of tags that are associated with the integration. These are defined by the partner.

    extensionInfo.overview

    (optional)

    The name of an HTML file in /data that will contain a detailed overview of this Jive Add-on.

    extensionInfo.install_instructions

    (optional)

    The name of an HTML file in /data that will contain a detailed explanation of steps required to install this Jive Add-on. This may not always be needed, but if we are expecting the Jive admin to deploy some kinds of companion network service for this Jive Add-on to work, this really needs to be here.

    extensionInfo.eula_filename

    (optional)

    The name of an HTML file in /data that will be presented to the user as a legal agreement before they are permitted to install this Jive Add-on.

    extensionInfo.privacy_policy

    (optional)

    The name of an HTML file in /data that will be presented to the user explaining the privacy policy concerning any information provided to this Jive Add-on or the network services it communicates with.

    extensionInfo.screenshots

    (optional)

    An array of strings, up to 5. Each value is the name of an image file in /data that contains a 600 x 400 screen shot or preview image.

    {add-on name}-screenshot_{screenshot #}.png

    my-custom-config

    (optional)

    When developing your Add-Ons, it is best to centralize your configurations under a single block  This allows ALL of them to be easily passed back and forth within your Add-On as a single object.  You can make as many extra blocks as necessary, they can always be referenced like this:

    jive.service.options['my-custom-config']

    or for nested parameters such as my-custom-config.test.parameter, use:

    jive.service.options['my-custom-config']['test']['parameter']