The project configuration file acc.config.json indicates that the directory is an acc CLI project. The configuration file contains project information and facilitates the deployment. It also tells acc CLI where to put files when syncing between the project and instance.

We provide sample acc.config.json files in this post for creating a project using acc CLI.

We recommend that you check in this file with your source.

{
  "alias": "local",
  "acc-js-sdk": {
    "traceAPICalls": false,
    "noStorage": false
  },
  "schemas": [
    {
      "schemaId": "nms:typologyRule",
      "filename": "/Administration/Campaign Management/Typology management/Typology rules/{@name}.meta.xml"
    }
  ]
}

You can manually edit these parameters.

Use acc instance template to display the default configuration shipped with acc. Run the following command to save the default configuration to a file acc instance template > acc.config.default.json.

alias (Optional)

Shortcut to use a default alias when running acc instance * commands without the --alias flag.

acc-js-sdk (Optional)

Configure the acc-js-sdk connection parameters (Read the Architecture: acc-js-sdk article). Common values include:

  • traceAPICalls: true to print the SOAP requests & responses to the console (stdout)
  • noStorage: true to disable the cache (Read the Architecture: Cache article)
  • timeout: 30000 to set the requests timeout to 30 seconds
  • extraHttpHeaders: {"foo": "bar} to set HTTP headers

The following values are forbidden as they are overriden by acc: storage, transport.

schemas (Mandatory)

The configuration file lists files to download via the schemas array. Let’s have a look at the configuration for Typology Rule.

{
  "schemas": [
    {
      "schemaId": "nms:typologyRule",
      "filename": "/Administration/Campaign Management/Typology management/Typology rules/{@name}.meta.xml",
      "queryDef": {
        "where": { "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }] }
      }
    }
  ]
}

Mandatory values:

  • schemaId the object to query, i.e. xtk:workflow, nms:delivery. Labelled after the Adobe Campaign SDK Convention
  • filename the local path to download files to

Optional values:

Variables:

  • Any parameter enclosed in {} will be replaced by the record value.

For example, the Typology Rule with @name = subject is saved as Administration/Campaign Management/Typology management/Typology rules/subject.meta.xml:

Typology rule downloaded by acc

The following sections list the default configuration for schemas. You may also extend the default configuration wuth your own settings like custom file extensions (.js, .jsp), custom folders, custom queries (filter on namespace, custom lineCount).

Administration: Access management

Organization

  • Download all Organizations
  • In /Administration/Access Management/Organizational entities
{
  "schemaId": "nms:localOrgUnit",
  "filename": "/Administration/Access Management/Organizational entities/{@name}.meta.xml"
}

Operator Groups

  • Download all Operator Groups
  • In Administration/Access Management/Operator groups
  • Excluding credentials
{
  "schemaId": "xtk:operator",
  "filename": "/Administration/Access Management/Operator groups/{@name}.meta.xml",
  "excludeXPaths": ["access/@password"],
  "queryDef": {
    "where": { "condition": [{ "expr": "@type = 1" }] }
  }
}

Named rights

  • Download all Named rights
  • In Administration/Access Management/Named rights
  • Excluding credentials
{
  "schemaId": "xtk:operator",
  "filename": "/Administration/Access Management/Named rights/{@name}.meta.xml",
  "excludeXPaths": ["access/@password"],
  "queryDef": {
    "where": { "condition": [{ "expr": "@type = 2" }] }
  }
}

Administration: Campaign Management

Typology Rules

  • Download all Typology rules excluding built-in
  • In Administration/Campaign Management/Typology management
{
  "schemaId": "nms:typologyRule",
  "filename": "/Administration/Campaign Management/Typology management/Typology rules/{@name}.meta.xml",
  "decompose": {
    "code": "/Administration/Campaign Management/Typology management/Typology rules/{@name}.js"
  },
  "queryDef": {
    "where": { "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }] },
    "lineCount": 10
  }
}

Typologies

  • Download all Typologies excluding built-in
  • In Administration/Campaign Management/Typologies
{
  "schemaId": "nms:typology",
  "filename": "/Administration/Campaign Management/Typology management/Typologies/{@name}.meta.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }] }
  }
}

Stocks

  • Download all Stocks excluding built-in
  • In Administration/Campaign Management/Stocks
{
  "schemaId": "nms:stock",
  "filename": "/Administration/Campaign Management/Stocks/{@name}.meta.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }] }
  }
}

Administration: Configuration

Data schemas

  • Download all Data schemas excluding built-in
  • In Administration/Configuration/Data schemas
{
  "schemaId": "xtk:srcSchema",
  "filename": "/Administration/Configuration/Data schemas/{@namespace}/{@name}.xml",
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "orderBy": { "node": [{ "expr": "@namespace" }, { "expr": "@name" }] }
  }
}

Input forms

  • Download all Input forms excluding built-in
  • In /Administration/Configuration/Input forms
{
  "schemaId": "xtk:form",
  "filename": "/Administration/Configuration/Input forms/{@namespace}/{@name}.xml",
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "orderBy": { "node": [{ "expr": "@name" }] }
  }
}

Form renderings

  • Download all Form renderings exluding built-in
  • In /Administration/Configuration/Form rendering
{
  "schemaId": "xtk:formRendering",
  "filename": "/Administration/Configuration/Form rendering/{@internalName}.meta.xml",
  "decompose": {
    "format/cssOverloading": "/Administration/Configuration/Form rendering/{@internalName}.css"
  },
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@internalName NOT LIKE 'xtk%' AND @internalName NOT LIKE 'nl%' AND @internalName NOT LIKE 'ncm%' AND @internalName NOT LIKE 'nms%'"
        }
      ]
    },
    "lineCount": 10
  }
}

JavaScript codes

  • Download all JavaScript codes excluding built-in
  • In Administration/Configuration/JavaScript codes
  • With Javascript code saved as *.js
{
  "schemaId": "xtk:javascript",
  "filename": "/Administration/Configuration/JavaScript codes/{@namespace}/{@name}.meta.xml",
  "decompose": {
    "data": "/Administration/Configuration/JavaScript codes/{@namespace}/{@name}.js"
  },
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "orderBy": { "node": [{ "expr": "@name" }] },
    "lineCount": 10
  }
}

JavaScript templates

  • Download all JavaScript templates
  • In Administration/Configuration/JavaScript templates
  • With Javascript code saved as *.js
{
  "schemaId": "xtk:jst",
  "filename": "/Administration/Configuration/JavaScript templates/{@namespace}/{@name}.meta.xml",
  "decompose": {
    "code": "/Administration/Configuration/JavaScript templates/{@namespace}/{@name}.js"
  },
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "lineCount": 10
  }
}

Dynamic JavaScript pages

  • Download all Dynamic JavaScript pages excluding built-in
  • In Administration/Configuration/Dynamic JavaScript pages
  • With Javascript code saved as *.js
{
  "schemaId": "xtk:jssp",
  "filename": "/Administration/Configuration/Dynamic JavaScript pages/{@namespace}/{@name}.meta.xml",
  "decompose": {
    "data": "/Administration/Configuration/Dynamic JavaScript pages/{@namespace}/{@name}.js"
  },
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "orderBy": { "node": [{ "expr": "@name" }] },
    "lineCount": 10
  }
}

Publication templates

  • Download all Publication templates excluding built-in
  • In Administration/Configuration/Publication Templates
{
  "schemaId": "ncm:publishing",
  "filename": "/Administration/Configuration/Publication Templates/{@namespace}/{@name}.meta.xml",
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    }
  }
}
  • Download all Navigation hierarchies excluding built-in and the merged hierarchy
  • In Administration/Configuration/Navigation hierarchies
{
  "schemaId": "xtk:navtree",
  "filename": "/Administration/Configuration/Navigation hierarchies/{@namespace}/{@name}.xml",
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')",
          "boolOperator": "AND"
        },
        { "expr": "@name != 'merged'", "boolOperator": "AND" }
      ]
    }
  }
}

SQL scripts

  • Download all SQL scripts excluding built-in
  • In Administration/Configuration/SQL scripts
  • With SQL code saved as *.sql
{
  "schemaId": "xtk:sql",
  "filename": "/Administration/Configuration/SQL scripts/{@namespace}/{@name}.meta.xml",
  "decompose": {
    "data": "/Administration/Configuration/SQL scripts/{@namespace}/{@name}.sql"
  },
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "lineCount": 10
  }
}

XSL style sheets

  • Download all XSL style sheets excluding built-in
  • In Administration/Configuration/XSL style sheets
  • With XSL code saved as *.xsl
{
  "schemaId": "xtk:xslt",
  "filename": "/Administration/Configuration/XSL style sheets/{@namespace}/{@name}.meta.xml",
  "decompose": {
    "data": "/Administration/Configuration/XSL style sheets/{@namespace}/{@name}.xsl"
  },
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@namespace NOT IN ('xtk', 'nl', 'ncm','nms', 'sfdc', 'crm', 'acx', 'adb')"
        }
      ]
    },
    "lineCount": 10
  }
}

Cubes

  • Download all Cubes excluding built-in
  • In Administration/Configuration/Cubes
{
  "schemaId": "xtk:olapCube",
  "filename": "/Administration/Configuration/Cubes/{@name}.meta.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }] }
  }
}

Target Mapping

  • Download all Target Mappings excluding built-in
  • in /Administration/Campaign Management/Target mappings
{
  "schemaId": "nms:deliveryMapping",
  "filename": "/Administration/Campaign Management/Target mappings/{@name}.meta.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@builtIn = false" }] }
  }
}

Administration: Platform

Enumerations

  • Download all Enumerations
  • In /Administration/Platform/Enumerations
  • Removing modified dates as they often change
{
  "schemaId": "xtk:enum",
  "filename": "/Administration/Platform/Enumerations/{@name}.meta.xml",
  "excludeXPaths": ["@lastAliasCleansing", "@lastModified"],
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@name NOT LIKE ''"
        }
      ]
    }
  }
}

Counters

  • Download all Counters
  • In /Administration/Platform/Counters
{
  "schemaId": "xtk:counter",
  "filename": "/Administration/Platform/Counters/{@name}.meta.xml",
  "queryDef": { "where": { "condition": [{ "expr": "@name NOT LIKE ''" }] } }
}

External Accounts

  • Download all External Accounts
  • in /Administration/Platform/External Accounts

Administration: Production

Technical Workflows

  • Download all Workflows (not templates) excluding built-in and campaign workflows
  • In /Administration/Production/Technical workflows
  • Removing common workflow attributes & visual state to only keep the source
{
  "schemaId": "xtk:workflow",
  "filename": "/Administration/Production/Technical workflows/{@internalName}.meta.xml",
  "excludeXPaths": [
    "@errorCount",
    "@eventCount",
    "@failed",
    "@lastModified",
    "@nextProcessingDate",
    "@port",
    "@processDate",
    "@taskCount",
    "visualState"
  ],
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@builtIn = true AND @isModel = false AND [@operation-id] = 0"
        }
      ]
    }
  }
}

Campaign Workflows

  • Download Workflows flagged @builtIn = true, not templates, attached to a campaign ([@operation-id] != 0)
  • In /Administration/Production/Objects created automatically/Campaign workflows
{
  "schemaId": "xtk:workflow",
  "filename": "/Administration/Production/Objects created automatically/Campaign workflows/{@internalName}.meta.xml",
  "queryDef": {
    "where": {
      "condition": [
        {
          "expr": "@builtIn = true AND @isModel = false AND [@operation-id] != 0"
        }
      ]
    }
  }
}

Campaign Management

Campaigns

  • Download all Campaigns (not templates) excluding built-in
  • In /Campaign Management/Campaigns
{
  "schemaId": "nms:operation",
  "filename": "/Campaign Management/Campaigns/{@internalName}.meta.xml",
  "queryDef": {
    "where": {
      "condition": [{ "expr": "@builtIn = false AND @isModel = true" }]
    }
  }
}

Deliveries

  • Download all Deliveries (not templates) including only built-in
  • In /Campaign Management/Deliveries
  • With HTML source code saved as .html and text version saved as .txt
  • The delivery table contains many records. Use this base query as a starting point, then add common filters:
    • [folder/@fullName] LIKE '/My Delivery/Execution Folder%'
    • [scheduling/@contactDate] >= DaysAgo(7)
    • [@internalName] LIKE '%myNamespace%'
    • @messageType = '0' (0 for Emails, 1 for SMS. All values in schema nms:delivery enum messageType)
{
  "schemaId": "nms:delivery",
  "filename": "/Campaign Management/Deliveries/{@internalName}.meta.xml",
  "decompose": {
    "content/html/source": "/Campaign Management/Deliveries/{@internalName}.html",
    "content/text/source": "/Campaign Management/Deliveries/{@internalName}.txt"
  },
  "excludeXPaths": ["@cryptedId"],
  "queryDef": {
    "where": {
      "condition": [
        { "expr": "@builtIn = true", "boolOperator": "AND" },
        { "expr": "@isModel = false", "boolOperator": "AND" }
      ]
    },
    "orderBy": { "node": [{ "expr": "@internalName" }] },
    "lineCount": 10
  }
}

Profiles and Targets

Lists

  • Download all Lists excluding built-in
  • In /Profiles and Targets/Lists
{
  "schemaId": "nms:group",
  "filename": "/Profiles and Targets/Lists/{@name}.meta.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }] }
  }
}

Predefined filters

  • Download all Predefined filters
  • In /Profiles and Targets/Predefined filters
{
  "schemaId": "xtk:queryFilter",
  "filename": "/Profiles and Targets/Predefined filters/{@name}.meta.xml",
  "queryDef": { "where": { "condition": [{ "expr": "@name NOT LIKE ''" }] } }
}

Services

  • Download all services except built-in
  • In Profiles and Targets/Services and Subscriptions
  • Removing credentials
{
  "schemaId": "nms:service",
  "filename": "/Profiles and Targets/Services and Subscriptions/{@name}.meta.xml",
  "excludeXPaths": [
    "social/@accessToken",
    "social/@accessTokenSecret",
    "social/@consumerKey",
    "social/@consumerSecret"
  ],
  "queryDef": {
    "where": {
      "condition": [{ "expr": "@name NOT LIKE 'xtk%'" }]
    }
  }
}

Resources: Templates

Schema Folder Files
xtk:workflow /Resources/Templates/Workflow templates {@internalName}.meta.xml
nms:delivery /Resources/Templates/Delivery templates {@internalName}.meta.xml, {@internalName}.html, {@internalName}.txt

Resources: Campaign

Personalization blocks

  • Download all Personalization blocks excluding built-in
  • In /Resources/Campaign Management/Personalization blocks
  • With HTML source code saved as .html and text version saved as .txt
{
  "schemaId": "nms:includeView",
  "filename": "/Resources/Campaign Management/Personalization blocks/{@name}.meta.xml",
  "decompose": {
    "source/html": "/Resources/Campaign Management/Personalization blocks/{@name}.html",
    "source/text": "/Resources/Campaign Management/Personalization blocks/{@name}.txt"
  },
  "queryDef": {
    "where": {
      "condition": [
        { "expr": "@type = 0", "boolOperator": "AND" },
        { "expr": "@name NOT LIKE 'xtk%'", "boolOperator": "AND" }
      ]
    },
    "lineCount": 10
  }
}

Personalization fields

  • Download Personalization fields flagged @isModel = true
  • In /Resources/Campaign Management/Personalization fields
{
  "schemaId": "nms:deliveryCustomization",
  "filename": "/Resources/Campaign Management/Personalization fields/{@name}.meta.xml",
  "queryDef": { "where": { "condition": [{ "expr": "@isModel = true" }] } }
}

Resources: Online

Public resources

  • Download all CSS Public resources
  • In Resources/Online/Public resources
{
  "schemaId": "xtk:fileRes",
  "filename": "/Resources/Online/Public resources/{@internalName}.meta.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@fileName LIKE '%css%'" }] }
  }
}

Web applications

  • Download all Web applications excluding built-in
  • In /Resources/Online/Web applications
  • Saved as {@internalName}.xml, ordered by @internalName
{
  "schemaId": "nms:webApp",
  "filename": "/Resources/Online/Web applications/{@internalName}.xml",
  "queryDef": {
    "where": { "condition": [{ "expr": "@builtIn = false" }] },
    "orderBy": { "node": [{ "expr": "@internalName" }] }
  }
}

Explorer

Folders

  • Download built-in Folders (@builtIn = true)
  • In /Explorer
{
  "schemaId": "xtk:folder",
  "filename": "/Explorer/{@name}.meta.xml",
  "queryDef": { "where": { "condition": [{ "expr": "@builtIn = true" }] } }
}