Documentation
Primary version
Primary version
  • Cubbles documentation
  • First steps
    • Generate a project
    • Create a webpackage
    • Create an elementary component
    • Create a compound component
      • Compound slot initialization
  • Runtime extension - RTE
    • User guide
      • RTE Integration
      • The Cubbles TAG API
        • The Cubbles Dependency API
      • The Cubbles Javascript API
        • Interacting with Cubbles from the outside
        • Adding dynamic connections
        • Interacting with Elementary Cubbles from the inside
      • The RTE Processing
        • RTE initialization and rendering timeline
      • The Cubbles IFrame API
        • The Cubbles IFrame Resizer API
      • The Cubbles mutation based start event API
      • FAQs
        • How to manually resolve dependency conflicts?
        • How to create a component instance dynamically?
        • How to render HTML Markup coming from input slot?
        • How to replace a dependency when declaring a component instance?
        • How to synchronize multiple dataflows between component instances?
        • How to handle the copyValue flag for non serializable instances?
    • Contributor guide
      • CIF processing
  • Developing with the vanilla boilerplate
    • Creating a new project
    • Developing elementaries using the vanilla boilerplate
    • Developing compounds using the vanilla boilerplate
    • Using the vanilla boilerplate scripts
  • Coder devtools - CDT
    • User guide
      • Create Cubbles artifacts
      • Upload a Webpackage
      • Generate a README file
      • Rename an artifact
      • Configure network proxy
      • Validate the manifest.webpackage file
      • Change active webpackage
      • Bulk upload of webpackages
      • Release a webpackage
      • Update the RTE version of a webpackage
      • Prepare a webpackage to be released
      • Update webpackage to the next development version
      • Generate a test environment for a component
      • Testing Cubbles components
      • Validate sources
      • Create a demo webpackage
    • Contributor guide
      • Checklist for releasing a new webpackage.modelVersion
  • Terms and concepts
    • Webpackage
    • Artifacts
    • User roles
    • Base
Powered by GitBook
On this page
  1. Terms and concepts

Artifacts

PreviousWebpackageNextUser roles

Last updated 6 years ago

A contains at least a manifest.webpackage file and an arbitrary number of artifacts. An artifact can be one of the following:

  • Apps can be used to provide complete html documents - containing a more or less sophisticated web application. Keep in mind that Cubbles has its main focus on components - to be used in 3rd party web applications.

  • With components we make a difference between elementary components (aka "elementaries") and compound components (aka "compounds". Both are different types of artifacts and described in different sections of the manifest.webpackage.

  • Utilities are artifacts to wrap any kind of resource, that can be used by components (or apps). Use utilities to provide js functionality (simple functions or complete libraries), styles etc. That is, anything that might be used by more than one other artifact.

Each artifact may contain any number of resources (js, css, json etc. -files).

Artifact definition

Artifacts are defined using JSON syntax under the "artifacts" property on the top-level of the manifest.webpackage file:

{
  "name": "the-unique-name-of-my-webpackage",
  "version": "1.0.0",
  "modelVersion": "10.0.0",
  "docType": "webpackage",
  "author": {
    "name": "John Doe",
    "email": "john.doe@example.org"
  },
  "license": "MIT",
  "homepage": "http://project.home.com",
  "keywords": [
    "connectors",
    "energy"
  ],
  "runnables": [
      {
        "name": "readme",
        "path": "/doc/readme.html",
        "description": "Read this ..."
      }
  ],
  "artifacts": {
    "apps": [
       // 0..n apps
       {
           "artifactId": "app-name",
           "runnables": [],
           "resources": [], // Optional
           "dependencies": [], // Optional
           "dependencyExcludes": [], // Optional
           "description": "A description" // Optional

       }
    ],
    "compoundComponents": [
       // 0..n compounds
       {
           "artifactId": "compound-name",
           "resources": [],
           "members": [],
           "connections": [],
           "slots": [], // Optional
           "inits": [], // Optional
           "dependencies": [], // Optional
           "runnables": [], // Optional
           "dependencyExcludes": [], // Optional
           "description": "A description" // Optional

       }
    ],
    "elementaryComponents": [
       // 0..n elementaries
       {
           "artifactId": "elementary-name",
           "resources": [],
           "slots": [], // Optional
           "dependencies": [], // Optional
           "runnables": [], // Optional
           "dependencyExcludes": [], // Optional
           "description": "A description" // Optional

       }
    ],
    "utilities": [
       // 0..n utilities
       {
           "artifactId": "util-name",
           "resources": [],
           "dependencies": [], // Optional
           "runnables": [], // Optional
           "dependencyExcludes": [], // Optional
           "description": "A description" // Optional

       }
    ]
}

Check for more information about the manifest.webpackage file.

Webpackage
this