cloneCodePackage

Create a new code package with a new name and copy an existing code package into it

You can optionally modify the new code package's status and properties.

 

Request examples

Typical

{ 
  "api": "admin",
  "action": "cloneCodePackage",
  "params": {
    "databaseName": "faircom",
    "ownerName": "admin",
    "codeName": "convertTemperature",
    "newDatabaseName": "faircom",
    "newOwnerName": "admin",
    "newCodeName": "convertTemperature V2",
    "codeStatus": "developing",
    "comment": "optional change comment",
    "description": "optional new description",
    "metadata": {}
  },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}
 
 

Clone a package

{ 
  "api": "admin",
  "action": "cloneCodePackage",
  "params": {
    "codeName": "convertTemperature",
    "newCodeName": "convertAndCategorizeTemperature",
    "comment": "Cloned from convertTemperature"
  },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}
 
 

 

Response examples

Typical

{
  "debugInfo": {
    "request": {
      "api": "admin",
      "action": "cloneCodePackage",
      "params": {
        "databaseName": "faircom",
        "ownerName": "admin",
        "codeName": "convertTemperature",
        "newDatabaseName": "faircom",
        "newOwnerName": "admin",
        "newCodeName": "convertTemperature V2",
        "codeStatus": "developing",
        "comment": "optional change comment",
        "description": "optional new description",
        "metadata": {}
      },
      "debug": "max",
      "authToken": "replaceWithAuthTokenFromCreateSession"
    }
  },
  "errorCode": 0,
  "errorMessage": "",
  "authToken": "replaceWithAuthTokenFromCreateSession"
}
 
 

Clone a package

{
  "debugInfo": {
    "request": {
      "api": "admin",
      "action": "cloneCodePackage",
      "params": {
        "codeName": "convertTemperature",
        "newCodeName": "convertAndCategorizeTemperature",
        "comment": "Cloned from convertTemperature"
      },
      "debug": "max",
      "authToken": "replaceWithAuthTokenFromCreateSession"
    }
  },
  "errorCode": 0,
  "errorMessage": "",
  "authToken": "replaceWithAuthTokenFromCreateSession"
}
 
 

 

Properties

Request properties ("params"

Property Description Default Type Limits (inclusive)

codeName

The "codeName" property contains the user-defined name for the code package.

It is an error to set "codeName" to the empty string "".

The package's unique identifier is the combination of "databaseName", "ownerName", and "codeName". See the "databaseName" and "ownerName" properties for more information.

Required - No default value string 1 to 64 bytes

codeStatus

The "codeStatus" property specifies a new status for the code. When you create a code package, it defaults to "developing". When you alter a code package, it defaults to the current state. You may set it to one of the following states: "developing", "deleted", "inactive", "deprecated", "testing", or "active". You can use "alterCodePackage" to transition from any state to any other. See "Use "codeStatus" to make a package runnable". Optional with default of "developing" string

"developing"

"deleted"

"inactive"

"deprecated"

"testing"

"active"

comment

The "comment" property explains the code change. Optional with default of "" string 1 to 65,535 bytes

databaseName

The "databaseName" property specifies the database that contains an object, such as a table or code package. If it is set to null or is omitted, it defaults to the default database of the JSON Action session, see "createSession" and the "defaultDatabaseName" property. 

You specify this property when you want to use a different database instead of the default. Your session's account must have the appropriate privileges to access the code package.

This property is useful because objects, such as tables and code packages, can have the same name in multiple databases. This feature allows you to create multiple environments in the same server and reuse the same JSON actions in each environment. For example, you can create "dev", "test", "stage", and "prod" databases on the same server and use the "defaultDatabaseName" or "databaseName" properties to specify the desired environment.

It is an error to set "databaseName" to the empty string "".

If no default database is specified during "createSession", the server sets the "defaultDatabaseName" to the "defaultDatabaseName" value specified in the services.json file.

Defaults to the session's "defaultDatabaseName" property string 1 to 64 bytes

description

The "description" property describes objects such as code packages, labels, or things. The server indexes this field with a full-text index so that you can search for any word or phrase. You cannot use this property for filtering in the Thing API.

Optional with default of "".

"unknown" for Thing API 

string

0 to 65,500 bytes

1 to 512 bytes for the Thing API 

metadata

The "metadata" property contains user-defined properties that add keywords and tags about the code package. The server indexes this field with a full-text index so you can search for any word or phrase to find code packages. Optional with default of {} object 0 or more key/value pairs

newCodeName

The "newCodeName" property causes the server to rename the code package from the current "codeName" to the "newCodeName". The server does not change the "codeName" when null or omitted. Optional with default of null string 1 to 64 bytes

newDatabaseName

The "newDatabaseName" property causes the server to use the new database as the target for the action. When null or omitted, the server runs the action in the current database. Optional with default of null string 1 to 64 bytes

newOwnerName

The "newOwnerName" property causes the server to use the new owner name as the target for the action. When null or omitted, the server runs the action using the current owner name. Optional with default of null string 1 to 64 bytes

ownerName

The "ownerName" property specifies the account that owns an object, such as a table or code package. See "createSession" and the "defaultOwnerName" property for more details. 

You specify this property when you want to use a different account instead of the default. Your session's account must have the appropriate privileges to access the code package. 

This property is useful because objects, such as tables and code packages, can have the same name in the same database as long as different accounts own each object. This feature allows you to create duplicate objects for different users on the same server and reuse the same JSON actions on those objects. For example, an administrator can copy objects from a production environment to her account so she can troubleshoot an issue using the same JSON actions, JavaScript, and SQL code.

It is an error to set "ownerName" to the empty string "".

If no default owner is specified during "createSession", the server sets the "defaultOwnerName" to the "defaultOwnerName" value specified in the services.json file.

Optional with default of the session's "defaultOwnerName" property string 1 to 64 bytes