diff --git a/source/_static/api/deployer.html b/source/_static/api/deployer.html index 0d106e28b..014a6c09d 100644 --- a/source/_static/api/deployer.html +++ b/source/_static/api/deployer.html @@ -410,18 +410,18 @@ 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864 -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688, -104.0616 -231.873,-231.248 z - " fill="currentColor">

Crafter Deployer (4.5.0)

Download OpenAPI specification:

E-mail: info@craftercms.org License: GPL 3.0

Crafter Deployer (5.0.0)

Download OpenAPI specification:

E-mail: info@craftercms.org License: GPL 3.0

Crafter Deployer API

-

target

Target management operations

-

Create a Crafter Deployer target

Target creation is based on templates. The deployer comes with two out of the box: remote and local. The remote template creates targets that pull changes from a remote Git repository, making it ideal to create targets for delivery environments. The local template instead generates targets that use a local Git repo and the last processed commit to infer the changes, without executing a pull, so it’s used mostly to create targets for authoring environments.

If a target already exists and replace is true, then the new target will replace the existing one. If replace is false and the target exists, a 409 is returned.

+

target

Target management operations

+

Create a Crafter Deployer target

Target creation is based on templates. The deployer comes with two out of the box: remote and local. The remote template creates targets that pull changes from a remote Git repository, making it ideal to create targets for delivery environments. The local template instead generates targets that use a local Git repo and the last processed commit to infer the changes, without executing a pull, so it's used mostly to create targets for authoring environments.

If a target already exists and replace is true, then the new target will replace the existing one. If replace is false and the target exists, a 409 is returned.

Request Body schema: application/json
required

Create target request body

-
env
required
string

The target’s environment (e.g. dev).

-
site_name
required
string

The target’s project/site name (e.g. my-editorial).

+
env
required
string

The target's environment (e.g. dev).

+
site_name
required
string

The target's project/site name (e.g. my-editorial).

replace
boolean

Replace the existing target.

template_name
string

Only use with remote template. The branch name of the remote Git repo to pull from. If not specified, the branch will be whatever branch is the current one in the remote repo.

repo_username
string

Only use with remote template. The username of the remote Git repo.

-
repo_password
string

Only use with remote template. The password of the remote Git repo.

+
repo_password
string

Only use with remote template. The username of the remote Git repo.

ssh_private_key_path
string

Only use with remote template. The path for the private key used for the remote Git repo.

ssh_private_key_passphrase
string

Conflict

Request samples

Content type
application/json
Example
{
  • "env": "preview",
  • "site_name": "my-editorial",
  • "replace": true,
  • "disable_deploy_cron": true,
  • "template_name": "local",
  • "repo_url": "/opt/crafter/data/repos/sites/my-editorial/sandbox",
  • "engine_url": "http://localhost:8080"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Get a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Request samples

Content type
application/json
Example
{
  • "env": "preview",
  • "site_name": "my-editorial",
  • "replace": true,
  • "disable_deploy_cron": true,
  • "template_name": "local",
  • "repo_url": "/opt/crafter/data/repos/sites/my-editorial/sandbox",
  • "engine_url": "http://localhost:8080"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Get a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Responses

Response samples

Content type
application/json
{
  • "env": "dev",
  • "siteName": "editorial",
  • "id": "editorial-dev",
  • "load_date": "2023-01-26T10:00:01.234-05:00",
  • "status": "INIT_COMPLETED"
}

Get all Crafter Deployer targets.

Responses

Response samples

Content type
application/json
{
  • "env": "dev",
  • "siteName": "editorial",
  • "id": "editorial-dev",
  • "load_date": "2023-01-26T10:00:1.234-05:00",
  • "status": "INIT_COMPLETED"
}

Get all Crafter Deployer targets.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Delete a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Delete a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Responses

Response samples

Content type
application/json
{
  • "message": "Target not found"
}

Delete a Crafter Deployer target if it exists.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
{
  • "message": "Target not found"
}

Delete a Crafter Deployer target if it exists.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Responses

Response samples

Content type
application/json
{
  • "message": "Target not found"
}

Deploy a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
{
  • "message": "Target not found"
}

Deploy a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Request Body schema: application/json
reprocess_all_files
boolean

If all files in all the target repos should be reprocessed.

from_commit_id
string

The id of the commit to start processing changes

Available since version 4.0.0

-
deployment_mode
string

The deployment mode to execute. Possible values:
   PUBLISH: All processors will run
   SEARCH_INDEX: Only the indexing processor will run

Available since version 4.0.0

+
deployment_mode
string

The deployment mode to execute. Possible values:
nbsp;  PUBLISH: All processors will run
   SEARCH_INDEX: Only the indexing processor will run

Available since version 4.0.0

Responses

Request samples

Content type
application/json
{
  • "reprocess_all_files": true,
  • "deployment_mode": "string"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Get the pending deployments for a target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Request samples

Content type
application/json
{
  • "reprocess_all_files": true,
  • "deployment_mode": "string"
}

Response samples

Content type
application/json
{
  • "message": "OK"
}

Get the pending deployments for a target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get the current deployment for a target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get the current deployment for a target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Responses

Response samples

Content type
application/json
{
  • "mode": "PUBLISH",
  • "status": null,
  • "running": true,
  • "duration": null,
  • "start": "2025-03-11T17:07:00.006221-04:00",
  • "end": null,
  • "target": {
    },
  • "changeSet": {
    },
  • "processorExecutions": [
    ]
}

Get the current and pending deployments for a target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
{
  • "mode": "PUBLISH",
  • "status": null,
  • "running": true,
  • "duration": null,
  • "start": "2025-03-11T17:07:00.006221-04:00",
  • "end": null,
  • "target": {
    },
  • "changeSet": {
    },
  • "processorExecutions": [
    ]
}

Get the current and pending deployments for a target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Clear git lock of a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Clear git lock of a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

query Parameters
token
required
string
Example: token=defaultManagementToken

The authorization token

Responses

Response samples

Content type
application/json
{
  • "message": "Required request parameter 'token' for method parameter type String is not present"
}

Recreate the underlying search index for a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target’s environment (e.g. dev).

-
site_name
required
string
Example: site_name,editorial

The target’s project/site name (e.g. editorial).

+

Response samples

Content type
application/json
{
  • "message": "Required request parameter 'token' for method parameter type String is not present"
}

Recreate the underlying search index for a Crafter Deployer target.

path Parameters
env
required
string
Example: env,dev

The target's environment (e.g. dev).

+
site_name
required
string
Example: site_name,editorial

The target's project/site name (e.g. editorial).

query Parameters
token
required
string
Example: token=defaultManagementToken

The authorization token

Responses

Response samples

Content type
application/json
{
  • "message": "OK"
}

Duplicate a target

path Parameters
env
required
string
Example: dev

The target’s environment (e.g. dev).

+

Response samples

Content type
application/json
{
  • "message": "OK"
}

Duplicate a target

path Parameters
env
required
string
Example: dev

The target's environment (e.g. dev).

source_site_name
required
string
Example: editorial

The source project/site name (e.g. editorial).

Request Body schema: application/json
required

Duplicate target's request body

-
env
required
string

The target’s environment (e.g. dev).

-
site_name
required
string

The target’s project/site name (e.g. my-editorial).

+
env
required
string

The target's environment (e.g. dev).

+
site_name
required
string

The target's project/site name (e.g. my-editorial).

replace
boolean

Replace the existing target.

template_name
string

Only use with remote template. The branch name of the remote Git repo to pull from. If not specified, the branch will be whatever branch is the current one in the remote repo.

repo_username
string

Only use with remote template. The username of the remote Git repo.

-
repo_password
string

Only use with remote template. The password of the remote Git repo.

+
repo_password
string

Only use with remote template. The username of the remote Git repo.

ssh_private_key_path
string

Only use with remote template. The path for the private key used for the remote Git repo.

ssh_private_key_passphrase
string

Internal server error

Response samples

Content type
application/json
{
  • "MemoryInfo": {
    }
}
-.. code-block:: html + .. code-block:: html :force: :linenos: :emphasize-lines: 5 @@ -163,18 +147,20 @@ In your ``studio-ui`` code, add the new locale files to ``ui/app/src/translation :caption: *studio-ui/static-assets/components/cstudio-common/resources/ja/base.js* :linenos: - CStudioAuthoring.Messages.registerBundle("siteDashboard", "ja", { - dashboardTitle: "ダッシュボード", + CStudioAuthoring.Messages.registerBundle('siteDashboard', 'ja', { + dashboardTitle: 'ダッシュボード', - dashboardCollapseAll: "すべて折りたたむ", + dashboardCollapseAll: 'すべて折りたたむ', ... -Remember to change the language code in the all the ``registerBundle`` calls in the ``base.js`` file + Remember to change the language code in all the ``registerBundle`` calls in the ``base.js`` file .. code-block:: js - CStudioAuthoring.Messages.registerBundle("dialogs", "ja", { - + CStudioAuthoring.Messages.registerBundle('siteDashboard', 'ja', { + ... + CStudioAuthoring.Messages.registerBundle('contextnav', 'ja', { + ... -------------------------------------- 6. Build, deploy and test your changes diff --git a/source/by-role/developer/upgrade/index.rst b/source/by-role/developer/upgrade/index.rst index 1d14d60c5..a98dac0c8 100644 --- a/source/by-role/developer/upgrade/index.rst +++ b/source/by-role/developer/upgrade/index.rst @@ -24,11 +24,6 @@ From 4.0 to 4.1 --------------- Upgrading to CrafterCMS 4.1 from 4.0 is a simple process. The upgrade script will handle most of the changes for you. ---------------- -From 3.1 to 4.1 ---------------- -Upgrading to CrafterCMS 4.1 from 3.1 is a bit more involved. Please follow the steps in the guide to upgrade your project/site. - .. _upgrade-search: @@ -44,8 +39,6 @@ The indexes may need to be regenerated, and the upgrade script will handle this When upgrading from 4.0.x (running ES 7) the indices are not compatible at all, so the content needs to be reprocessed and indices rebuilt completely, which is handled by the post-upgrade script, as mentioned above. -When upgrading from 3.1.x (running ES 6), we'll use the ``upgrade-search.sh`` script, which tells the search engine to re-index internally to the new format. - See :ref:`upgrading-search` for more information on upgrading your search from Elasticsearch to OpenSearch along with some manual updates that may be required in some instances. -------------------------- diff --git a/source/by-role/system-admin/upgrade/index.rst b/source/by-role/system-admin/upgrade/index.rst index d03ffd615..1ef88fe5d 100644 --- a/source/by-role/system-admin/upgrade/index.rst +++ b/source/by-role/system-admin/upgrade/index.rst @@ -1,5 +1,5 @@ :is-up-to-date: True -:last-updated: 4.5.0 +:last-updated: 5.0.0 .. _upgrading-craftercms: @@ -11,13 +11,13 @@ The following CrafterCMS versions are able to upgrade to the latest release: .. list-table:: - * - **4.5** + * - **5.0** + - **4.5** - **4.4** - **4.3** - **4.2** - **4.1** - **4.0** - - **3.1** * - All - All - All @@ -99,147 +99,6 @@ Starting version 4.1.0, CrafterCMS now uses OpenSearch instead of Elasticsearch. |hr| -.. _upgrading-mongodb: - ------------------ -Upgrading MongoDB ------------------ -.. note:: - The following section only applies to Crafter Profile and Social installs. - -Crafter Profile and Social version 4.1.0 and later uses MongoDB v6 in the install. -When upgrading your 3.1.x install of Crafter Profile and Social to 4.1.0 and later, MongoDB will need to be manually upgraded. - -This section describes how to upgrade MongoDB in your Crafter Profile and Social version 3.1.x installed on a server. - -Please read through the upgrade instructions :ref:`here ` first. -The steps for upgrading MongoDB in your Crafter Profile and Social install follows almost exactly -the same steps as listed in that document. - -.. important:: - Remember to **manually shut down and backup CrafterCMS** before beginning your upgrades! - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Upgrading 3.1.x -> 4.1.x (from MongoDB 3.x) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -#. Download CrafterCMS version 4.1.x, and extract the files. -#. Run the ``upgrade-search.sh`` script from your newly extracted files. - - .. code-block:: bash - :caption: *Run the upgrade-search script* - :emphasize-lines: 1 - - > ./upgrade-search.sh /path/of/install/to/be/upgraded --stay-alive - ======================================================================== - Search upgrade started - ======================================================================== - Downloading Elasticsearch 7 from https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz - ... - All indices reindex complete - Reindex finished in 12.843 seconds - 'stay-alive' flag on, hit enter to stop Elasticsearch - > - End process. Stop Elasticsearch - Move indexes from 'data/indexes-es' to 'indexes' - ======================================================================== - Search upgrade completed - ======================================================================== - - | - - See :ref:`upgrading-search` for more information on upgrading search. - -#. Upgrade using the ``upgrade-target.sh`` script from your newly extracted files. First, we'll need to set ``MONGODB_HOME`` so that the backup script will run with the ``mongod`` version ``3.4.4`` in the old installation before running the ``upgrade-target.sh``: - - .. code-block:: bash - :caption: *Set MONGODB_HOME and Run the upgrade-target script from the newly extracted files* - - > MONGODB_HOME=/path/of/3.1.x/install/bin/mongodb ./upgrade-target.sh /path/of/install/to/be/upgraded - ... - [o] Overwriting file apache-tomcat/LICENSE with the new release version - [o] Overwriting file apache-tomcat/BUILDING.txt with the new release version - ======================================================================== - Upgrade completed - ======================================================================== - !!! Please read the release notes and make any necessary manual changes, then run the post upgrade script: - - | - -#. Manually upgrade MongoDB from version ``3.4.4`` to version ``6.0.12``. - We need to upgrade from each release version and run the ``setFeatureCompatibilityVersion`` command against the admin database. - - Please see https://www.mongodb.com/docs/manual/release-notes/6.0-upgrade-standalone/ for more information on upgrading MongoDB. - - Download and extract the following MongoDB versions available from https://www.mongodb.com/try/download/community: - - - 3.6.23 (http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.6.0.tgz) - - 4.0.28 (http://downloads.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz) - - 4.2.25 (https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.2.25.tgz) - - 4.4.26 (https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-4.4.26.tgz) - - 5.0.23 (https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.23.tgz) - - 6.0.12 (https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-6.0.12.tgz) - - Run ``mongod`` from each release version ``/extracted/location/of/mongodb-version-to-be-upgraded-to/bin/mongod`` starting from the oldest one: - - .. code-block:: bash - :caption: *Run mongod from MongoDB version to be upgraded to* - :emphasize-lines: 9 - - $ /extracted/location/of/mongodb-linux-x86_64-3.6.23/bin/mongod --dbpath=/path/of/3.1.x/install/data/mongodb --directoryperdb --journal --port 27020 - ... - 2023-12-20T02:38:20.546-0500 I CONTROL [initandlisten] db version v3.6.23 - 2023-12-20T12-03T02:38:20.546-0500 I CONTROL [initandlisten] git version: d352e6a4764659e0d0350ce77279de3c1f243e5c - 2023-12-20T02:38:20.546-0500 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020 - 2023-12-20T02:38:20.546-0500 I CONTROL [initandlisten] allocator: system - ... - 2023-12-20T02:38:21.687-0500 I NETWORK [initandlisten] listening via socket bound to /tmp/mongodb-27020.sock - 2023-12-20T02:38:21.687-0500 I NETWORK [initandlisten] waiting for connections on port 27020 - 2023-12-20T02:38:21.687-0500 I STORAGE [LogicalSessionCacheRefresh] createCollection: config.system.sessions with generated UUID: fee195e0-b337-498f-8ad9-1c410748bce1 - - | - - Then login as user admin in mongoDB in your 3.1.x install and set the compatibility version using the command - ``db.adminCommand( { setFeatureCompatibilityVersion: "{version}" } )`` - - .. code-block:: bash - :caption: *Set compatibility version from /path/of/3.1.x/install/bin/mongodb/bin/* - :emphasize-lines: 1,7 - - > ./mongosh mongodb://localhost:27020/admin - Current Mongosh Log ID: 659511008267cb24aff1427e - Connecting to: mongodb://localhost:27020/admin?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.8.0 - Using MongoDB: 3.6.23 - Using Mongosh: 1.8.0 - - admin> db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } ) - { ok: 1 } - admin> - - | - - Repeat the steps above for all the other versions of MongoDB downloaded in ascending order of version, e.g. - run ``mongod`` version ``4.0.28``, then set the feature compatibility version to ``4.0``. Next run - ``mongod`` version ``4.2.25``, then set the feature compatibility version to ``4.2``, and so on and so forth - -#. Before starting CrafterCMS, you'll need to configure the installation root directory to use Java version 17. Remember to read the release notes or any relevant upgrade articles and make any necessary manual changes before running the `post-upgrade.sh`` script as described next - -#. Run the ``post-upgrade.sh`` script. This will: - - - Remove old *data/indexes-es* directory (old indexes are not usable by OpenSearch) - - Start CrafterCMS and ask for signal to continue - - Once started and CrafterCMS is up (including UM execution), let the post-upgrade continue by typing ``Y``: - - .. code-block:: bash - - Please make sure Crafter has started successfully before continuing - > Continue? [(Y)es/(N)o]: - - - Post-upgrade will continue to trigger the reindex of all targets by calling the Deployer API ``/api/1/target/deploy-all`` - -#. Your install is now upgraded and you may login to Studio to check the version. - -|hr| - ------------------------------ Troubleshooting Upgrade Issues ------------------------------ diff --git a/source/by-role/system-admin/upgrade/upgrading-cluster.rst b/source/by-role/system-admin/upgrade/upgrading-cluster.rst index f3e590bdb..65150ac69 100644 --- a/source/by-role/system-admin/upgrade/upgrading-cluster.rst +++ b/source/by-role/system-admin/upgrade/upgrading-cluster.rst @@ -28,13 +28,6 @@ upgraded node. Here are the steps for upgrading a node: ./bin/crafter.sh backup #. Download the CrafterCMS version you'd like to upgrade to, and extract the files on one of the nodes -#. If you are upgrading from Studio version 3.1.x, run the ``upgrade-search.sh`` script from the new bundle, - otherwise skip this step - - .. code-block:: bash - :caption: *Run the upgrade-search script* - - ./upgrade-search.sh /path/of/install/to/be/upgraded --stay-alive #. Run the ``upgrade-target.sh`` script from the new bundle @@ -134,21 +127,6 @@ After upgrading a node, we can now add the rest of the node/s to the cluster. Here are the steps for adding a new node to the cluster: #. Stop the Studio cluster (the primary server) -#. If you are upgrading from Studio version 3.1.x, make a copy of the ``data/db`` folder from the Primary server, - then, on the server that will be a new Replica, extract the new bundle, then paste the data/db from previous step, - otherwise, skip this step. - - .. code-block:: bash - :caption: *Make a copy of the data/db folder in Primary server* - - cd crafter/data - tar -czvf dbData.tar.gz db/ - - .. code-block:: bash - :caption: *In the Replica server, paste the data/db folder copied from the Primary server* - - cd crafter/data - tar -xvf dbData.tar.gz #. In the Replica server, review the following configuration files to start Studio in cluster mode as described :ref:`here `: diff --git a/source/by-role/system-admin/upgrade/upgrading-search.rst b/source/by-role/system-admin/upgrade/upgrading-search.rst index d6eddbd50..91298a15f 100644 --- a/source/by-role/system-admin/upgrade/upgrading-search.rst +++ b/source/by-role/system-admin/upgrade/upgrading-search.rst @@ -1,5 +1,5 @@ :is-up-to-date: True -:last-updated: 4.2.0 +:last-updated: 5.0.0 .. _upgrading-search: @@ -17,126 +17,11 @@ The steps for upgrading to OpenSearch follows almost exactly the same steps as l |hr| --------------------------------------- -Upgrading 3.1.x -> 4.2.0 (from ES 6.x) --------------------------------------- -To upgrade your 3.1.x installation, we'll be running the upgrade scripts from a new binary archive. -We'll use the ``upgrade-search.sh`` script, which will update the data in place. -This script tells the search engine to re-index internally to the new format and should only be run on CrafterCMS 3.1.x installs. -Please backup your data directory before running the script. - -Here is the ``upgrade-search`` script params: - -.. code-block:: text - - -h,--help Show usage information - --port Elasticsearch port to use for - upgrade ES temporary instance - --status-retries How many times to try to get a - yellow status from the ES - cluster (waiting 10s between - retries) - --status-timeout Timeout in seconds for the - status check of the ES cluster - --stay-alive Set to true to keep the - process alive after reindexing - is complete. This allows to - query the ES server and - review. - e.g: - - # Run in a different port - ./upgrade-search.sh --port 9206 /path/of/install/to/be/upgraded --stay-aliveUpgrading 3.1.x -> 4.1.0 (from ES 6.x) - -Here are the steps to upgrade your CrafterCMS 3.1.x install: - -#. Download the CrafterCMS version you'd like to upgrade to, and extract the files. -#. Configure the root directory of the new bundle to use Java version 17 (This is required to run the ``upgrade-search.sh`` - script since ES 7 won't run with Java 21) -#. Run the ``upgrade-search.sh`` script from your newly extracted files. - - .. code-block:: bash - :caption: *Run the upgrade-search script* - :emphasize-lines: 1 - - ./bin/upgrade/upgrade-search.sh /path/of/install/to/be/upgraded --stay-alive - ======================================================================== - Search upgrade started - ======================================================================== - ... - End process. Stop Elasticsearch - Move indexes from 'data/indexes-es' to 'indexes' - ======================================================================== - Search upgrade completed - ======================================================================== - -#. Configure the root directory back to Java version 21 -#. Upgrade using the ``upgrade-target.sh`` script. We'll need to upgrade the target without backing up the bin folder. - This is because the MariaDB version is now 11 for 4.2.0, and we cannot start the old MariaDB from the new bundle. - Please manually back it up before running the ``upgrade-target.sh`` script. Remember to enter ``No`` when prompted - by the script ``Backup the bin folder before upgrade? [(Y)es/(N)o]:`` - - .. code-block:: bash - :caption: *Run the upgrade-target script* - :emphasize-lines: 1,3 - - ./bin/upgrade/upgrade-target.sh /path/of/install/to/be/upgraded - ... - > Backup the bin folder before upgrade? [(Y)es/(N)o]:n - ... - ======================================================================== - Upgrade completed - ======================================================================== - !!! Please read the release notes and make any necessary manual changes, then run the post upgrade script: /path/of/install/to/be/upgraded/bin/upgrade/post-upgrade.sh !!! - -#. Run the ``post-upgrade.sh`` script from the install that's being upgraded. This will start CrafterCMS and ask for - a signal to continue, then recreate search indexes. Remember to read the release notes or any relevant upgrade - articles and make any necessary manual changes before running the `post-upgrade.sh` script. You'll need to configure - the installation root directory to use Java version 21 before running the script. - - .. code-block:: bash - :caption: *Run the post-upgrade script* - :emphasize-lines: 2,7-8 - - cd /path/of/install/to/be/upgraded/bin/upgrade/ - ./post-upgrade.sh - ======================================================================== - Post-upgrade 3.1.30 -> 4.2.0 - ======================================================================== - ... - Please make sure Crafter has started successfully before continuing - > Continue? [(Y)es/(N)o]: y - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Re-creating Search indexes for sites - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - WARNING: This will delete the current Search site indexes and recreate them. - This is necessary because of a major Search upgrade. Don't proceed - if you can't have any search downtime. - > Proceed? [(Y)es/(N)o]: y - ... - ======================================================================== - Post-upgrade completed - ======================================================================== - Crafter has already been started, you can use the system again - - The script will prompt you to check that CrafterCMS has started successfully before proceeding as noted above. - To do this, monitor the tomcat logs and check for the line like below to make sure CrafterCMS has started - (this could take a while because of the upgrade manager (UM) updates): - - .. code-block:: text - - 27-Jun-2024 08:14:11.119 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [127790] milliseconds - - Once the post-upgrade script is done, all indices should be now available in OpenSearch and CrafterCMS is now ready for use. - -|hr| - ---------------------------------------- -Upgrading 4.0.x -> 4.2.0 (from ES 7.15) ---------------------------------------- +------------------------------ +Upgrading 4.0.x (from ES 7.15) +------------------------------ When upgrading from 4.0.x (running ES 7) the indices are not compatible at all, so the content needs to be reprocessed and indices rebuilt completely. The rebuilding of the indices is handled by the ``post-upgrade.sh`` script. -Remember that the ``upgrade-search.sh`` script should NOT be run when upgrading your CrafterCMS 4.0.x install. To upgrade your 4.0.x installation, we'll be running the upgrade scripts from a new binary archive. Here are the steps: @@ -171,12 +56,11 @@ Here are the steps: |hr| ------------------------- -Upgrading 4.1.x -> 4.2.0 ------------------------- -There are no extra steps required for upgrading your 4.1.x install to 4.2.0, simply follow the instructions -:ref:`here `. Remember that the ``upgrade-search.sh`` script should NOT be run when -upgrading your CrafterCMS 4.1.x install. +--------------- +Upgrading 4.1.x +--------------- +There are no extra steps required for upgrading your 4.1.x install, simply follow the instructions +:ref:`here `. |hr| diff --git a/source/by-role/system-admin/upgrade/upgrading-server.rst b/source/by-role/system-admin/upgrade/upgrading-server.rst index 84f2f0c60..a375e32fc 100644 --- a/source/by-role/system-admin/upgrade/upgrading-server.rst +++ b/source/by-role/system-admin/upgrade/upgrading-server.rst @@ -1,5 +1,5 @@ :is-up-to-date: True -:last-updated: 4.2.0 +:last-updated: 5.0.0 .. index:: Upgrade CrafterCMS, Upgrade @@ -15,9 +15,9 @@ CrafterCMS provides a couple of scripts for upgrading your installation. * :ref:`Running the upgrade script (upgrade-target) from a new binary archive ` * :ref:`Running the upgrade script (start-upgrade) from your current installation ` -The upgrade script allows you to do an upgrade, where your bin directory is upgraded, keeping only Tomcat's shared folder, Tomcat's conf folder, the search config, the Deployer config folder, and the crafter-setenv scripts. +The upgrade script allows you to do an upgrade, where your ``bin`` directory is upgraded, keeping only Tomcat's ``shared`` folder, Tomcat's ``conf`` folder, the search config, the Deployer ``config`` folder, and the ``crafter-setenv`` scripts. -When performing an upgrade, CrafterCMS is shut down, then the script asks if the user wants to backup the ``data`` folder. It will then ask if the user wants to backup the ``bin`` folder, then perform the upgrade. After running the upgrade script (either *upgrade-target* or *start-upgrade*), run the ``post-upgrade`` script. Finally, you can :ref:`start your CrafterCMS ` install again. +When performing an upgrade, CrafterCMS is shut down, then the script asks if the user wants to backup the ``data`` folder. It will then ask if the user wants to backup the ``bin`` folder, then perform the upgrade. After running the upgrade script (either *upgrade-target* or *start-upgrade*), run the ``post-upgrade`` script. Finally, you can :ref:`start your CrafterCMS ` install again. Depending on how recent the version you are upgrading from, there may be files that do not exist in the new release and the script will give the user the option to delete or keep the files. @@ -55,8 +55,6 @@ For config files that are different in the new release, the script gives you the | - .. note:: - When upgrading to CrafterCMS version 4 from a 3.1.x version, remember to increase the timeout set in the environment variable ``MARIADB_SOCKET_TIMEOUT`` in the ``{Crafter-CMS-install-directory}/bin/crafter-setenv.sh`` file of the CrafterCMS install you're running the upgrade script from to a high enough value to avoid running into a :ref:`db-upgrades-timeout` ---------------- Before Upgrading @@ -65,7 +63,7 @@ Before starting your upgrade: #. **Review the** :ref:`release notes ` **for the version you are upgrading to**. It contains specific information on the changes that have been made and how it may affect you when upgrading to that specific version. - Remember to read all other release notes in between the version you currently have and the version you are upgrading to as it contains information on the changes that have occurred and steps you might have to take when upgrading to a specific version. Remember to also check :ref:`breaking changes ` as it may require changes on your installation or system for the version you are upgrading to to work. + Remember to read all other release notes in between the version you currently have and the version you are upgrading to as it contains information on the changes that have occurred and steps you might have to take when upgrading to a specific version. Remember to also check :ref:`breaking changes ` as it may require changes on your installation or system for the version you are upgrading to to work. #. **Backup CrafterCMS** just in case something goes wrong with the upgrade. @@ -83,7 +81,7 @@ Upgrade by running the upgrade script from a new binary archive --------------------------------------------------------------- Download the CrafterCMS version you'd like to upgrade to, and extract the files. -To upgrade your CrafterCMS, we will use the ``upgrade-target`` script. The upgrade script is located in ``{Crafter-CMS-install-directory}/bin/upgrade`` of your newly downloaded binary archive. Here's the description for the script we are going to use: +To upgrade your CrafterCMS, we will use the ``upgrade-target.sh`` script. The upgrade script is located in ``{Crafter-CMS-install-directory}/bin/upgrade`` of your newly downloaded binary archive. Here's the description for the script we are going to use: .. code-block:: bash @@ -104,7 +102,7 @@ Here are the steps for upgrading your CrafterCMS install version from a new bina #. Download the CrafterCMS binary archive version you'd like to upgrade to #. Extract the binary archive from the previous step and go into the ``bin/upgrade`` folder -#. Run the ``upgrade-target`` script +#. Run the ``upgrade-target.sh`` script #. Change to the target folder and run the ``post-upgrade.sh`` script Here's an example of running the upgrade script ``upgrade-target`` from a new binary archive: @@ -126,16 +124,16 @@ Here's an example of running the ``post-upgrade.sh`` script: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Example upgrading using the upgrade script from a new binary archive ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Let's take a look at an example of upgrading a CrafterCMS version 4.1.0 install (located in ``/Users/myuser/crafter-4.1.0``) to version 4.1.1 using the upgrade script from 4.1.1 +Let's take a look at an example of upgrading a CrafterCMS version 4.4.4 install (located in ``/Users/myuser/crafter-4-4-4``) to version 5.0.0 using the upgrade script from 5.0.0 -After downloading and extracting CrafterCMS version 4.0.0 to ``/Users/myuser/crafter-4.1.1``, we are now ready to start upgrading by running the ``upgrade-target`` script from the 4.1.1 binary archive. +After downloading and extracting CrafterCMS version 5.0.0 to ``/Users/myuser/crafter-5.0.0``, we are now ready to start upgrading by running the ``upgrade-target`` script from the 5.0.0 binary archive. .. code-block:: bash :force: - :emphasize-lines: 2,25-26,39-49 + :emphasize-lines: 2,25-26,28,40-49,57,59 - ➜ cd crafter-4.1.1/bin/upgrade - ➜ upgrade git:(develop) ./upgrade-target.sh /User/myuser/crafter-4.1.0 + ➜ cd crafter-5.0.0/bin/upgrade + ➜ ./upgrade-target.sh /Users/myuser/crafter-4-4-4 ======================================================================== Shutting down Crafter ======================================================================== @@ -161,7 +159,7 @@ After downloading and extracting CrafterCMS version 4.0.0 to ``/Users/myuser/cra > Backup the data folder before upgrade? [(Y)es/(N)o]: n > Backup the bin folder before upgrade? [(Y)es/(N)o]: n ======================================================================== - Upgrading Crafter 4.1.0 -> 4.1.1 + Upgrading Crafter 4.4.4 -> 5.0.0 ======================================================================== Synching files from /Users/myuser/crafter-4.1.0/bin to /Users/myuser/crafter-4.1.1/bin... [-] Deleting file cli/repo/org/craftercms/cli/4.1.0/cli-4.1.0.jar that doesn't exist in the new release @@ -192,55 +190,49 @@ After downloading and extracting CrafterCMS version 4.0.0 to ``/Users/myuser/cra ======================================================================== Upgrade completed ======================================================================== - !!! Please read the release notes and make any necessary manual changes, then run the post upgrade script: /Users/myuser/crafter-4.1.0/bin/upgrade/post-upgrade.sh !!! + !!! Please read the release notes and make any necessary manual changes, then run the post upgrade script: /Users/myuser/crafter-4-4-4/bin/upgrade/post-upgrade.sh !!! | -After the ``upgrade-target`` script is finished running, the next step is to run the ``post-upgrade`` script from our target install ``/Users/myuser/crafter-4.1.0/bin/upgrade`` +After the ``upgrade-target`` script is finished running, the next step is to run the ``post-upgrade`` script from our target install ``/Users/myuser/crafter-4.4.4/bin/upgrade`` .. code-block:: bash :force: :caption: *Example output when running the post-upgrade script* - :emphasize-lines: 2,11 + :emphasize-lines: 2,21 - ➜ cd /Users/myuser/crafter-4.1.0/bin/upgrade + ➜ cd /Users/myuser/crafter-4.4.4/bin/upgrade ➜ ./post-upgrade.sh ======================================================================= - Post-upgrade 4.1.0 -> 4.1.1 + Post-upgrade 4.4.4 -> 5.0.0 ======================================================================== - Found hooks match for version >=3.1.17 - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Starting up Crafter - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Preflight check. - . - . - . + Found hooks match for version >=4.1.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Re-creating Search indexes for sites + Make published repo bare for all sites ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - WARNING: This will delete the current Search site indexes and recreate them. - This is necessary because of a major Search upgrade. Don't proceed - if you can't have any search downtime. - > Proceed? [(Y)es/(N)o]: - Re-index succesfully triggered for 'my-editorial-authoring' - Re-index succesfully triggered for 'my-editorial-preview' + Processing repository for site: ed + No published repository found at /Users/myuser/crafter-4.4.4/data/repos/sites/ed/published, skipping... + + Processing repository for site: hello + published repository for site hello is now bare + + All published repositories are now bare ======================================================================== Post-upgrade completed ======================================================================== - Crafter has already been started, you can use the system again + !!! Crafter has not been started, please run /Users/myuser/crafter-4.4.4/bin/startup.sh to start it !!! | -If Crafter is not started, you may :ref:`start CrafterCMS ` now +You may :ref:`start CrafterCMS ` now. .. _upgrade-using-current-install: --------------------------------------------------------------- Upgrade by running the upgrade script from your current install --------------------------------------------------------------- -CrafterCMS version 3.1.x, excluding version 3.1.0, contain the upgrade scripts required to upgrade your install. Here's the description for the script we are going to use: +CrafterCMS contain the upgrade scripts required to upgrade your install. Here's the description for the script we are going to use: .. code-block:: bash @@ -260,7 +252,7 @@ CrafterCMS version 3.1.x, excluding version 3.1.0, contain the upgrade scripts where: ``[options]`` is optional. -The ``start-upgrade`` script downloads the CrafterCMS version that you specify that you would like to upgrade to, then creates a script ``upgrade`` in ``{Crafter-CMS-install-directory}/temp/upgrade`` that performs the upgrade. +The ``start-upgrade.sh`` script downloads the CrafterCMS version or uses the CrafterCMS archive that you specify that you would like to upgrade to, then creates a script ``upgrade`` in ``{Crafter-CMS-install-directory}/temp/upgrade`` that performs the upgrade. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Steps for upgrading using the upgrade script from your current install @@ -268,12 +260,12 @@ Steps for upgrading using the upgrade script from your current install To upgrade your current CrafterCMS install: #. Go to your ``bin/upgrade`` folder -#. Run the ``start-upgrade`` script. The ``start-upgrade`` script downloads the CrafterCMS binary archive version you would like to upgrade to. This will create a script ``upgrade.sh`` in ``{Crafter-CMS-install-directory}/temp/upgrade``. +#. Run the ``start-upgrade.sh`` script. The ``start-upgrade.sh`` script downloads the CrafterCMS binary archive version you would like to upgrade to. This will create a script ``upgrade.sh`` in ``{Crafter-CMS-install-directory}/temp/upgrade``. #. Go to ``{Crafter-CMS-install-directory}/temp/upgrade`` and run the ``upgrade.sh`` script #. Go to ``{Crafter-CMS-install-directory}/bin/upgrade`` and run the ``post-upgrade.sh`` script .. note:: - CrafterCMS 4.0.0 requires Java JDK 11. When upgrading to CrafterCMS version 4.0.0 from a 3.1.x version, remember to switch your JAVA_HOME environment variable to point to Java JDK 11 before running the ``post-upgrade`` script + When upgrading your CrafterCMS version, remember to check the release notes in case the version you are upgrading to uses a different Java JDK version than your current install. Remember to switch your JAVA_HOME environment variable to point to the new Java JDK version required before running the ``post-upgrade.sh`` script #. Delete the``{Crafter-CMS-install-directory}/temp/upgrade`` once your upgrade has been completed successfully @@ -281,7 +273,7 @@ Here's an example to perform an upgrade of your current install to a certain ver .. code-block:: bash - $ ./start-upgrade.sh -v 4.0.0 + $ ./start-upgrade.sh -v 5.0.0 $ cd ../../temp/upgrade $ ./upgrade.sh @@ -311,20 +303,20 @@ Here's an example to perform an upgrade of your current install using the path w ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Example running the upgrade script from your current install ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Let's take a look at an example of upgrading a CrafterCMS version 4.1.0 install (located in ``/Users/myuser/crafter``) to version 4.1.1 using the upgrade script in 4.1.0 +Let's take a look at an example of upgrading a CrafterCMS version 4.4.4 install (located in ``/Users/myuser/crafter``) to version 5.0.0 using the upgrade script in 4.4.4 -We'll perform an upgrade of 4.1.0 (current install) to 4.1.1 +We'll perform an upgrade of 4.4.4 (current install) to 5.0.0: .. code-block:: bash :emphasize-lines: 1,18 :caption: *Example output running the start-upgrade script* - ➜ ./start-upgrade.sh -v 4.1.1 + ➜ ./start-upgrade.sh -v 5.0.0 ============================================================ Downloading Bundle ============================================================ - Downloading bundle @ https://downloads.craftercms.org/4.1.1/crafter-cms-authoring-4.1.1-darwin-x86_64.tar.gz... - Downloading md5sum @ https://downloads.craftercms.org/4.1.1/crafter-cms-authoring-4.1.1-darwin-x86_64.tar.gz.md5... + Downloading bundle @ https://downloads.craftercms.org/5.0.0/crafter-cms-authoring-5.0.0-darwin-x86_64.tar.gz... + Downloading md5sum @ https://downloads.craftercms.org/5.0.0/crafter-cms-authoring-5.0.0-darwin-x86_64.tar.gz.md5... Doing checksum... ============================================================ Extracting Bundle @@ -340,10 +332,11 @@ We'll perform an upgrade of 4.1.0 (current install) to 4.1.1 | -The next step is to run the ``upgrade`` script under the ``temp/upgrade`` folder +The next step is to run the ``upgrade.sh`` script under the ``temp/upgrade`` folder .. code-block:: bash - :emphasize-lines: 2,22-23,34-44 + :force: + :emphasize-lines: 2,25-26,28,37-45,50,52-54 :caption: *Example running the upgrade script from the temp directory* ➜ cd ../../temp/upgrade @@ -351,6 +344,9 @@ The next step is to run the ``upgrade`` script under the ``temp/upgrade`` folder ======================================================================== Shutting down Crafter ======================================================================== + Preflight check. + Operating system is Mac, must use Docker to run OpenSearch. + Running in this mode is for development purposes only. ██████╗ ██████╗ █████╗ ███████╗ ████████╗ ███████╗ ██████╗ ██████╗ ███╗ ███╗ ███████╗ ██╔════╝ ██╔══██╗ ██╔══██╗ ██╔════╝ ╚══██╔══╝ ██╔════╝ ██╔══██╗ ██╔════╝ ████╗ ████║ ██╔════╝ @@ -360,35 +356,33 @@ The next step is to run the ``upgrade`` script under the ``temp/upgrade`` folder ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ------------------------------------------------------------------------ - Stopping Tomcat + Stop Tomcat ------------------------------------------------------------------------ - Tomcat already shutdown or pid /Users/myuser/crafter/temp/upgrade/crafter/bin/apache-tomcat/tomcat.pid file not found + Tomcat already shutdown ------------------------------------------------------------------------ - Stopping Deployer + Stop Deployer ------------------------------------------------------------------------ - Crafter Deployer already shutdown or pid /Users/myuser/crafter/temp/upgrade/crafter/bin/crafter-deployer/crafter-deployer.pid file not found - > Backup the data folder before upgrade? [(Y)es/(N)o]: - > Backup the bin folder before upgrade? [(Y)es/(N)o]: + Deployer already shutdown + > Backup the data folder before upgrade? [(Y)es/(N)o]: n + > Backup the bin folder before upgrade? [(Y)es/(N)o]: n ======================================================================== - Upgrading Crafter 4.1.0 -> 4.1.1 + Upgrading Crafter 4.4.4 -> 5.0.0 ======================================================================== Synching files from /Users/myuser/crafter/temp/upgrade/crafter/bin to /Users/myuser/crafter/bin... - [-] Deleting file opensearch/bin/opensearch.pid that doesn't exist in the new release - [-] Deleting file dbms/share/user_map.conf that doesn't exist in the new release - [-] Deleting file dbms/share/ukrainian/errmsg.sys that doesn't exist in the new release + [-] Deleting file opensearch/plugins/opensearch-security-analytics/plugin-security.policy that doesn't exist in the new release + [-] Deleting file opensearch/plugins/opensearch-security-analytics/plugin-descriptor.properties that doesn't exist in the new release . . . - ---------------------------------------------------------------------------------------------------- - Config file [apache-tomcat/conf/catalina.properties] is different in the new release. Please choose: - - (D)iff file versions to see what changed - - (E)dit the original file (with $EDITOR) - - (K)eep the original file - - (O)verwrite the file with the new version - - (M)atching config files for regex [apache-tomcat/conf/.+] should always be overwritten - - (A)lways overwrite config files and don't ask again - - (Q)uit the upgrade script (this will stop the upgrade at this point) - ---------------------------------------------------------------------------------------------------- + ------------------------------------------------------------------------------------------ + Config file [crafter-deployer/logging.xml] is different in the new release. Please choose: + - (D)iff file versions to see what changed + - (E)dit the original file (with $EDITOR) + - (K)eep the original file + - (O)verwrite the file with the new version + - (A)lways overwrite config files and don't ask again + - (Q)uit the upgrade script (this will stop the upgrade at this point) + ------------------------------------------------------------------------------------------ > Enter your choice: . . @@ -402,7 +396,7 @@ The next step is to run the ``upgrade`` script under the ``temp/upgrade`` folder | -Finally we'll run the ``post-upgrade`` script. Remember to switch your JAVA_HOME environment variable to point to Java JDK 17 before running the ``post-upgrade`` script if you're upgrading from a release earlier than 4.1.0. +Finally we'll run the ``post-upgrade.sh`` script. Remember to check the release notes in case the version you are upgrading to uses a different Java JDK version than your current install and if so, remember to switch your JAVA_HOME environment variable to point to the new Java JDK version before running the ``post-upgrade.sh`` script. .. code-block:: bash :emphasize-lines: 2,11 @@ -410,47 +404,28 @@ Finally we'll run the ``post-upgrade`` script. Remember to switch your JAVA_HOM ➜ cd ../../bin/upgrade ➜ ./post-upgrade.sh ======================================================================== - Post-upgrade 4.1.0 -> 4.1.1 + Post-upgrade 4.4.4 -> 5.0.0 ======================================================================== - Found hooks match for version >=3.1.17 + Found hooks match for version >=4.1.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Starting up Crafter + Make published repo bare for all sites ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Preflight check. - Operating system is Mac, must use Docker to run OpenSearch. - Running in this mode is for development purposes only. - ██████╗ ██████╗ █████╗ ███████╗ ████████╗ ███████╗ ██████╗ ██████╗ ███╗ ███╗ ███████╗ - ██╔════╝ ██╔══██╗ ██╔══██╗ ██╔════╝ ╚══██╔══╝ ██╔════╝ ██╔══██╗ ██╔════╝ ████╗ ████║ ██╔════╝ - ██║ ██████╔╝ ███████║ █████╗ ██║ █████╗ ██████╔╝ ██║ ██╔████╔██║ ███████╗ - ██║ ██╔══██╗ ██╔══██║ ██╔══╝ ██║ ██╔══╝ ██╔══██╗ ██║ ██║╚██╔╝██║ ╚════██║ - ╚██████╗ ██║ ██║ ██║ ██║ ██║ ██║ ███████╗ ██║ ██║ ╚██████╗ ██║ ╚═╝ ██║ ███████║ - ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ + Processing repository for site: ed + No published repository found at /Users/myuser/crafter/data/repos/sites/ed/published, skipping... - ------------------------------------------------------------------------ - Start Deployer - ------------------------------------------------------------------------ - . - . - . - Please make sure Crafter has started successfully before continuing - > Continue? [(Y)es/(N)o]: y - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Re-creating Search indexes for sites - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - WARNING: This will delete the current Search site indexes and recreate them. - This is necessary because of a major Search upgrade. Don't proceed - if you can't have any search downtime. - > Proceed? [(Y)es/(N)o]: y + Processing repository for site: hello + published repository for site hello is now bare + All published repositories are now bare ======================================================================== Post-upgrade completed ======================================================================== - Crafter has already been started, you can use the system again + !!! Crafter has not been started, please run /Users/myuser/crafter/bin/startup.sh to start it !!! | -If CrafterCMS is not started, you may :ref:`start CrafterCMS ` noow +You may :ref:`start CrafterCMS ` now. .. _start-crafter-after-upgrade: @@ -463,6 +438,10 @@ After performing the upgrade steps listed above (either by running the upgrade s ➜ ./startup.sh + Preflight check. + Operating system is Mac, must use Docker to run OpenSearch. + Running in this mode is for development purposes only. + ██████╗ ██████╗ █████╗ ███████╗ ████████╗ ███████╗ ██████╗ ██████╗ ███╗ ███╗ ███████╗ ██╔════╝ ██╔══██╗ ██╔══██╗ ██╔════╝ ╚══██╔══╝ ██╔════╝ ██╔══██╗ ██╔════╝ ████╗ ████║ ██╔════╝ ██║ ██████╔╝ ███████║ █████╗ ██║ █████╗ ██████╔╝ ██║ ██╔████╔██║ ███████╗ @@ -471,36 +450,46 @@ After performing the upgrade steps listed above (either by running the upgrade s ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ------------------------------------------------------------------------ - Starting Deployer + Check if upgrade is needed for embedded database /Users/myuser/crafter/data/db ------------------------------------------------------------------------ + DB version 11.4.3-MariaDB is up to date with new DB engine version 11.4.3 + MariaDB upgrade is not REQUIRED ------------------------------------------------------------------------ - Starting OpenSearch + Start Deployer ------------------------------------------------------------------------ ------------------------------------------------------------------------ - Starting Tomcat + Start OpenSearch + ------------------------------------------------------------------------ + ------------------------------------------------------------------------ + Start Tomcat ------------------------------------------------------------------------ Using CATALINA_BASE: /Users/myuser/crafter/bin/apache-tomcat Using CATALINA_HOME: /Users/myuser/crafter/bin/apache-tomcat Using CATALINA_TMPDIR: /Users/myuser/crafter/temp/tomcat - Using JRE_HOME: /Users/myuser/.jenv/versions/11 + Using JRE_HOME: /Users/myuser/.jenv/versions/21 Using CLASSPATH: /Users/myuser/crafter/bin/apache-tomcat/bin/bootstrap.jar:/Users/myuser/crafter/bin/apache-tomcat/bin/tomcat-juli.jar + Using CATALINA_OPTS: -server -Xss1024K -Xms1G -Xmx4G -Dlog4j2.formatMsgNoLookups=true -Dtomcat.host=localhost -Dtomcat.http.port=8080 -Dtomcat.https.port=8443 -Dtomcat.ajp.port=8009 -Dtomcat.debug.port=8000 -Dcrafter.home=/Users/myuser/crafter -Dcrafter.bin.dir=/Users/myuser/crafter/bin -Dcrafter.data.dir=/Users/myuser/crafter/data -Dcrafter.logs.dir=/Users/myuser/crafter/logs -Dcatalina.logs=/Users/myuser/crafter/logs/tomcat -Dapplication.logs=/Users/myuser/crafter/logs/tomcat -Djava.net.preferIPv4Stack=true -Dgrape.root=/Users/myuser/crafter/bin Using CATALINA_PID: /Users/myuser/crafter/bin/apache-tomcat/tomcat.pid Tomcat started. - Log files live here: "/Users/myuser/crafter/logs". - To follow the main tomcat log, you can "tail -f /Users/myuser/crafter/logs/tomcat/catalina.out" + To follow the main tomcat log, you can run: + tail -F /Users/myuser/crafter/logs/tomcat/catalina.out + Happy Crafting | -Once you start up CrafterCMS, in the logs, notice the lines mentioning ``Checking upgrades for the...`` like below: +Once you start up CrafterCMS, in the logs, notice the lines mentioning ``Check for upgrades ...`` like below: .. code-block:: text - [INFO] 2020-10-05T13:53:23,033 [localhost-startStop-1] [upgrade.DefaultUpgradeManagerImpl] | Checking upgrades for the blueprints + [INFO] 2025-10-31T09:01:23,307 [main] [upgrade.StudioUpgradeManagerImpl] | Check for upgrades to the blueprints + ... + [INFO] 2025-10-31T09:01:24,048 [main] [upgrade.StudioUpgradeManagerImpl] | Check for upgrades to the database and configuration + ... + [INFO] 2025-10-31T09:01:24,917 [main] [upgrade.StudioUpgradeManagerImpl] | Starting upgrade of all targets + [INFO] 2025-10-31T09:01:24,919 [main] [upgrade.StudioUpgradeManagerImpl] | Starting upgrade for target 'hello' ... - [INFO] 2020-10-05T13:53:25,509 [localhost-startStop-1] [upgrade.DefaultUpgradeManagerImpl] | Checking upgrades for the database and configuration - [INFO] 2020-10-05T13:53:25,665 [localhost-startStop-1] [upgrade.DefaultUpgradeManagerImpl] | Checking upgrades for site mysite - [INFO] 2020-10-05T13:53:25,719 [localhost-startStop-1] [upgrade.DefaultUpgradeManagerImpl] | Checking upgrades for configuration in site mysite + [INFO] 2025-10-31T09:01:25,070 [main] [upgrade.StudioUpgradeManagerImpl] | Check for upgrades to configuration in site 'hello' ... | diff --git a/source/conf.py b/source/conf.py index 4e0b89496..2bbabb01e 100644 --- a/source/conf.py +++ b/source/conf.py @@ -29,8 +29,7 @@ # The short X.Y version. version = u'current' # The full version, including alpha/beta/rc tags. -release = u'4.5.0' - +release = u'5.0.0' # -- General configuration --------------------------------------------------- @@ -152,7 +151,7 @@ # Add versions for the bottom menu html_context = { - 'versions': ['current', '4.1', '4.0', '3.1'], + 'versions': ['current', '4', '4.1', '4.0'], 'docsUrl': '/docs', 'productLinks': [ { @@ -294,7 +293,7 @@ .. |freemarker_link| replace:: :ref:`templating-api` """ -# Javadoc home +# Javadoc home and version javadoc_base = 'https://javadoc.craftercms.org/' # Shorten external links @@ -303,7 +302,6 @@ 'docs_base_url': ('/docs' + '/%s', None) } - # # Open links in new tab # diff --git a/source/contribute/acknowledgements.rst b/source/contribute/acknowledgements.rst index d55e74931..48925c306 100644 --- a/source/contribute/acknowledgements.rst +++ b/source/contribute/acknowledgements.rst @@ -1,5 +1,4 @@ -:is-up-to-date: True -:last-updated: 4.5.0 +:last-updated: 5.0.0 .. index:: Open Source Acknowledgements diff --git a/source/includes/available-permissions-path-scope.rst b/source/includes/available-permissions-path-scope.rst index ee45307bc..b315ab1da 100644 --- a/source/includes/available-permissions-path-scope.rst +++ b/source/includes/available-permissions-path-scope.rst @@ -6,38 +6,59 @@ The path level permissions are defined in the file ``permission-mappings-config. * - Permission - Description + * - resolve_conflict - User is permitted to resolve a conflict for a file by accepting ours or theirs |br| Required for using the :ref:`Git project tool ` to resolve a conflict for a file in the UI via the API :base_url:`Resolve conflict <_static/api/studio.html#tag/repository/operation/resolveConflict>` + * - site_diff_conflicted_file - User is permitted to get the difference between ``ours`` and ``theirs`` for a conflicted file for a project |br| Required for using the :ref:`Git project tool ` to get the difference between ``ours`` and ``theirs`` for a conflicted file in the UI or via the API :base_url:`Diff conflicted file <_static/api/studio.html#tag/repository/operation/diffConflictedFile>` - * - publish - - User is permitted to approve submitted content for publishing or publish content from the :ref:`UI ` - or via the API :base_url:`Publish items <_static/api/studio.html#tag/publishing/operation/publishItems>` + + * - publish_approve + - User is permitted to approve submitted content for publishing from the :ref:`UI ` or via + the API :base_url:`Approve request publish submission <_static/api/studio.html#tag/workflow/operation/workflowApprove>` |br| + May also be required when using the API that :base_url:`Publishes the given content to the target (staging or live) <_static/api/studio.html#tag/publishing/operation/publish>`. + + * - publish_request + - User is permitted to publish content to the target (staging or live) from the the :ref:`UI ` or via + the API that :base_url:`Publishes the given content to the target (staging or live) <_static/api/studio.html#tag/publishing/operation/publish>` |br| + Also required by the API :base_url:`Get available publishing targets for site <_static/api/studio.html#tag/publishing/operation/getAvailablePublishingTargets>` + Users need both `publish_approve` and `publish_request` to be able to publish immediately without approval. + + * - publish_reject + - User is permitted to reject a publish package waiting for approval from the :ref:`UI ` or via + the API :base_url:`Approve request publish submission <_static/api/studio.html#tag/workflow/operation/workflowReject>` + * - content_copy - User is permitted to copy content from the UI :ref:`Sidebar ` or the :ref:`Toolbar ` options |br| Note that this permission enables the ``copy`` action in the UI but it does not enable the user to paste the items. Paste requires ``content_write`` permission + * - content_create - User is permitted to create new content from the UI :ref:`Sidebar ` or the :ref:`Toolbar ` options |br| Note that this permission enables the action in the UI but it does not enable the user to create the content. Actual content creation requires ``content_write`` permission + * - content_delete - User is permitted to delete content from the UI :ref:`Sidebar ` or the :ref:`Toolbar ` options or via the API :base_url:`Delete content <_static/api/studio.html#tag/content/operation/getDeletePackage>` + * - content_read - User is permitted to read content from the UI or use various APIs e.g. getting the history for a content item via the API :base_url:`Get item history <_static/api/studio.html#tag/content/operation/getItemHistory>`, getting the preview image of a given content type via the API :base_url:`Get content type preview image <_static/api/studio.html#tag/content/operation/getContentTypePreviewImage>`, etc. + * - content_write - User is permitted to edit content in the UI or use various APIs e.g. renaming content via the API :base_url:`Rename content <_static/api/studio.html#tag/content/operation/contentRename>`, etc. + * - folder_create - User is permitted to create new folder + * - item_unlock - User is permitted to unlock items |br| Required when using the API to :base_url:`unlock item by path <_static/api/studio.html#tag/content/operation/itemUnlockByPath>` diff --git a/source/includes/available-permissions-project-scope.rst b/source/includes/available-permissions-project-scope.rst index 3cb3ff6ae..87a1d9945 100644 --- a/source/includes/available-permissions-project-scope.rst +++ b/source/includes/available-permissions-project-scope.rst @@ -6,74 +6,100 @@ The project level permissions are defined in the file ``permission-mappings-conf * - Permission - Description + * - add_remote - User is permitted to add a remote repository to the project. |br| Required for using the :ref:`Git project tool ` to add a repository in a project using the ``New Remote`` button which uses the :base_url:`Add remote repository <_static/api/studio.html#tag/repository/operation/addRemoteRepository>` API. + * - cancel_failed_pull - User is permitted to cancel a failed pull from a repository. |br| Required for using the :ref:`Git project tool ` to cancel a failed pull in the UI via the API :base_url:`Cancel failed pull <_static/api/studio.html#tag/repository/operation/cancelFailedPull>` + * - commit_resolution - User is permitted to commit resolution |br| Required for using the :ref:`Git project tool ` to commit resolution in the UI via the API :base_url:`Commit resolution <_static/api/studio.html#tag/repository/operation/commitResolution>` + * - list_remotes - User is permitted to list remote repositories for a project |br| Required for using the :ref:`Git project tool ` to list remote repositories for a project in the UI via the API :base_url:`List remote repositories <_static/api/studio.html#tag/repository/operation/listRemoteRepositories>` + * - pull_from_remote - User is permitted to pull content from remote repository to project content repository |br| Required for using the :ref:`Git project tool ` to pull content from remote repository in the UI via the API :base_url:`Pull from remote repository <_static/api/studio.html#tag/repository/operation/pullFromRemoteRepository>` + * - push_to_remote - User is permitted to push content to remote repository from project content repository |br| Required for using the :ref:`Git project tool ` to push content to remote repository in the UI via the API :base_url:`Push to remote repository <_static/api/studio.html#tag/repository/operation/pushToRemoteRepository>` + * - remove_remote - User is permitted to remove remote repository from project content repository |br| Required for using the :ref:`Git project tool ` to remove remote repository from project in the UI via the API :base_url:`Remove remote repository <_static/api/studio.html#tag/repository/operation/removeRemoteRepository>` + * - repair_repository - User is permitted to repair the repository - * - cancel_publish + + * - publish_cancel - User is permitted to cancel a publish request from the :ref:`UI ` - or via the API :base_url:`Cancel publishing packages <_static/api/studio.html#tag/publishing/operation/cancelPublishingPackages>` - * - get_publishing_queue + or via the API :base_url:`Cancel publish packages <_static/api/studio.html#tag/workflow/operation/cancelPublishPackages>` + + * - publish_get_queue - User is permitted to get the list of packages in the publishing queue from the :ref:`UI ` - or via the API :base_url:`Publishing packages <_static/api/studio.html#tag/publishing/operation/PublishingPackages>` |br| - Also required by the API :base_url:`Get package details <_static/api/studio.html#tag/publishing/operation/getPublishingPackageDetails>` + or via the API :base_url:`Publishing packages <_static/api/studio.html#tag/publishing/operation/GetPublishPackages>` |br| + Also required by the following APIs: + + - :base_url:`Get package details <_static/api/studio.html#tag/publishing/operation/getPublishPackage>` + - :base_url:`Get publish package items <_static/api/studio.html#tag/publishing/operation/getPublishPackageItems>` + - :base_url:`Get workflow affected packages <_static/api/studio.html#tag/workflow/operation/getWorkflowAffectedPackages>` + * - publish_status - User is permitted to get the publishing status from the :ref:`UI ` or via the API :base_url:`Get publishing status <_static/api/studio.html#tag/publishing/operation/getPublishingStatus>` + * - publish_by_commits - User is permitted to publish commits from sandbox repository by commit id from the :ref:`UI ` or via the API :base_url:`Publish commits <_static/api/studio.html#tag/publishing/operation/publishCommits>` + * - start_stop_publisher - User is permitted to start/stop the publisher from the :ref:`UI ` + * - view_logs - User is permitted to view logs from the :ref:`project tools UI ` or :ref:`Main Menu UI ` depending on where the permission is configured (project or global/system) + * - audit_log - User is permitted to access the audit logs in the UI from the :ref:`main menu ` or the :ref:`project tools ` via the API :base_url:`Get audit log <_static/api/studio.html#tag/audit/operation/getAuditLog>` + * - content_search - User is permitted to search for content from the UI + * - s3_read - User is permitted to get a list of items from an S3 bucket defined in the :ref:`AWS S3 profile ` configured.|br| This is required when using the API to :base_url:`Get a list of items from an S3 bucket <_static/api/studio.html#tag/aws/operation/listItems>` + * - s3_write - User is permitted to upload a file to an S3 bucket defined in the :ref:`AWS S3 profile ` configured.|br| This is required when using the API to :base_url:`Upload a file to an S3 bucket <_static/api/studio.html#tag/aws/operation/uploadItems>`, etc. + * - webdav_read - User is permitted to get a list of items from a WebDAV server configured in the :ref:`WebDAV profiles ` configuration file. |br| This is required when using the API to :base_url:`Get a list of items from a WebDAV server <_static/api/studio.html#tag/webdav/operation/listItemsWebdav>` + * - webdav_write - User is permitted to upload a file to a WebDAV server configured in the :ref:`WebDAV profiles ` configuration file. |br| This is required when using the API to :base_url:`Upload a file to a WebDAV server <_static/api/studio.html#tag/webdav/operation/uploadItemsWebdav>` + * - encryption_tool - User is permitted to access the :ref:`encryption tool ` |br| Required when using the API to :base_url:`Encrypt a text value <_static/api/studio.html#tag/security/operation/encrypt>` + * - get_children - User is permitted to call getChildren* APIs for browsing project content |br| Required when using the following APIs: @@ -81,32 +107,39 @@ The project level permissions are defined in the file ``permission-mappings-conf - :base_url:`Get list of children for given item paths <_static/api/studio.html#tag/content/operation/getChildrenByPaths>` - :base_url:`Get item details for given an item path <_static/api/studio.html#tag/content/operation/getDetailedItemByPath>` - :base_url:`Get list of items for given item paths <_static/api/studio.html#tag/content/operation/getSandboxItemsByPath>` + * - install_plugins - User is permitted to :ref:`install plugins ` |br| Required when using the following APIs: - :base_url:`Install plugin <_static/api/studio.html#tag/marketplace/operation/installPlugin>` - :base_url:`Copy local plugin <_static/api/studio.html#tag/marketplace/operation/copyPlugin>` + * - list_plugins - User is permitted to list installed plugins |br| Required when using the API to :base_url:`get the list of marketplace plugins installed in the given site <_static/api/studio.html#tag/marketplace/operation/getInstalledPlugins>` + * - remove_plugins - User is permitted to :ref:`remove installed plugins ` |br| Required when using the following APIs: - :base_url:`Remove plugin <_static/api/studio.html#tag/marketplace/operation/removePlugin>` - :base_url:`Plugin usage <_static/api/studio.html#tag/marketplace/operation/pluginUsage>` + * - set_item_states - User is permitted to set item states |br| Required when using the following APIs: - :base_url:`Set item states <_static/api/studio.html#tag/workflow/operation/setItemStates>` - :base_url:`Update item states <_static/api/studio.html#tag/workflow/operation/updateItemStates>` + * - site_status - User is permitted to :ref:`get status of repository for a project ` |br| Required when using the API :base_url:`Repository status <_static/api/studio.html#tag/repository/operation/repositoryStatus>` + * - unlock_repository - User is permitted to unlock the repository + * - read_configuration - User is permitted to read configuration content for project |br| Required when using the following APIs: @@ -114,6 +147,7 @@ The project level permissions are defined in the file ``permission-mappings-conf - :base_url:`Get all model definitions for site <_static/api/studio.html#tag/model/operation/getAllModelDefinitions>` - :base_url:`Get configuration content for site and configuration location <_static/api/studio.html#tag/configuration/operation/getConfiguration>` - :base_url:`Get configuration history for site and configuration location <_static/api/studio.html#tag/configuration/operation/getConfigurationHistory>` + * - write_configuration - User is permitted to write configuration content for project |br| Required when using the following APIs: diff --git a/source/index.rst b/source/index.rst index 9f7d1304e..6d3598da2 100644 --- a/source/index.rst +++ b/source/index.rst @@ -1,5 +1,5 @@ :is-up-to-date: True -:last-updated: 4.5.0 +:last-updated: 5.0.0 ######################## CrafterCMS Documentation @@ -71,8 +71,8 @@ CrafterCMS is used by three main constituencies: ========================= Latest CrafterCMS Release ========================= -The latest community version of CrafterCMS is `4.5.0 `__ and the latest -enterprise version is ``4.5.0E``. +The latest version of CrafterCMS is `version 5.0.0 `__ and the latest +enterprise version is ``5.0.0E``. Start exploring the latest version of CrafterCMS in a few minutes using Docker by simply running the following command: diff --git a/source/reference/modules/engine.rst b/source/reference/modules/engine.rst index c1443318d..a240d5081 100644 --- a/source/reference/modules/engine.rst +++ b/source/reference/modules/engine.rst @@ -2886,9 +2886,6 @@ It is also possible to change the prefix and names for the headers: | -.. note:: - For CrafterCMS versions prior to 3.1.14, the prefix for the headers is ``MELLON_`` and can't be changed via project configuration - The default value of the token is ``my_secure_token``. Remember to replace the default value by setting ``security.headers.token`` to secure your installation. In the example below, the token is now set to @@ -3441,8 +3438,7 @@ authentication provider used, but you can always obtain an instance of |CustomUs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Migrating from Crafter Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Prior to version ``3.1.5`` Crafter Profile was the only security provider available, all projects created in previous -versions will continue to work without any changes, however if you need to migrate to a different provider like SAML2 +If you are using Crafter Profile as the security provider and need to migrate to a different provider like SAML2 you will need to replace all uses of the ``profile`` and ``authentication`` variables, both have been replaced with ``authToken``. @@ -3667,8 +3663,6 @@ next steps to create one: Crafter Profile tenant, when a new user needs to be created. So the configuration above will cause the Security Provider to create a user with firstName, lastName and displayName attributes. - .. note:: - For CrafterCMS versions prior to 3.1.14, the prefix for the headers is ``MELLON_`` instead of ``CRAFTER_`` and can't be changed via project configuration. ~~~~~~~~~~~~~~~~~~ Add Facebook Login @@ -3900,9 +3894,6 @@ To use a custom blacklist follow these steps: # The location of the blacklist to use for all sites (this will have no effect if the sandbox is disabled) crafter.engine.groovy.sandbox.blacklist.path=classpath:crafter/engine/extension/groovy/blacklist - .. note:: - In CrafterCMS v3.1.14 and prior, the name of the property is ``crafter.engine.groovy.sandbox.blacklist`` - #. Restart CrafterCMS Now you can execute the same script without any issues. diff --git a/source/reference/modules/studio.rst b/source/reference/modules/studio.rst index c52b14a75..4b1afb976 100644 --- a/source/reference/modules/studio.rst +++ b/source/reference/modules/studio.rst @@ -1,5 +1,5 @@ :is-up-to-date: True -:last-updated: 4.5.0 +:last-updated: 5.0.0 .. highlight:: xml @@ -3389,10 +3389,14 @@ Add the following lines with the regex for the item you wish not to be published .. code-block:: yaml :caption: *studio-config-override.yaml* + :emphasize-lines: 6 - # Publishing blacklist configuration, items matching regexes on this list will never be published - studio.configuration.publishing.blacklist.regex: >- - .*/\.keep + # Paths matching git pathspecs on this list will never be published. + # For information on git pathspec, see https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec + # .keep files are always ignored + # e.g.: + # studio.configuration.publishing.blacklist.pathspecs: "*.png" + studio.configuration.publishing.blacklist.pathspecs: "" | diff --git a/source/release-notes/4-2-0.rst b/source/release-notes/4-2-0.rst deleted file mode 100644 index 2611346a9..000000000 --- a/source/release-notes/4-2-0.rst +++ /dev/null @@ -1,252 +0,0 @@ -.. index:: CrafterCMS version 4.2.0 Release Notes - ------------------------- -CrafterCMS Version 4.2.0 ------------------------- - -Released *November 13, 2024* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -New Features -^^^^^^^^^^^^ -* New authentication mechanism for Engine Preview |br| - To learn more about configuring Engine Preview, see :ref:`studio-preview-cookie` and :ref:`engine-security-preview-mode` - -* Crafter CLI has the following new options: - - - Publish Content - - Create Group - - List Groups - - Create User - - Get Users - - Please see :ref:`crafter-cli` for more information. - -* New RTE configuration for TinyMCE plugin ``template`` - Please see :ref:`rte-configuration-tinymce-plugin-template-example` for more information - -* YAML, JSON and CSV files are now editable via the "Edit" option in Preview |br| - See `here `__ for more information - -* Image placeholder generation util is now integrated into XB |br| - When generating items on XB, fields without default values use ``placehold.it`` for images. - See `here `__ for more information - -* Broken dependencies are now recorded in the DB and with every content written, if the item being written is referenced - as a broken dependency, the reference will be fixed. |br| - See `here `__ for more information - -* New configuration property for Deployer HTTP requests response timeout |br| - See :ref:`studio-deployer-http-request-timeout` for more information - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* Improved permissions. - - - Added a new permission, ``publish_by_commits``, that allows users to publish by commit ids. See the API - `publishCommits <../_static/api/studio.html#tag/publishing/operation/publishCommits>`__ for permission usage. - - Items are evaluated for permissions based on their paths regardless of where they are listed. The permission - ``~DASHBOARD~`` is now removed from the list of allowed permissions. The upgrade manager will remove it from your - project during your install upgrade. - -* `Improved item duplication in XB `__ -* `Added support for multiple browser tabs for the same project/site `__ -* `Set the default sort order of Studio UI search to alphabetical when no keyword is supplied `__ -* Bulk Publishing enhancements - - * `Added an option to include soft dependencies when bulk publishing `__ - This new option is set to false by default. - * `Studio now does a \"Publish All\" request when \"Publish By Path='/'\" request is received `__ - - -* Improved XB ease-of-use and resilience for JS apps programmatically registering elements for XB |br| - See `here `__ for more information - - For more information on registering elements for XB, see :ref:`xb-lazy-loaded-content`. - -* Improved ``SiteItemService``. The object returned by ``SiteItemService`` is now a copy of the item. - -* `Added a single item per line view to search and browse item selection dialogs `__ - -* Added parameter for setting CloudFormation capabilities |br| - See :ref:`studio-cloudformation-capabilities` for more information - -""""""""" -Studio UI -""""""""" -* [utils/xml] Upgrade prettier to v3x which changed from sync apis to async - - * ``serialize`` no longer formats code - * ``beautify`` is now async - -* [components] - - * HostUI removed, merged with Host (its container component) - * EditModeSwitcherUI removed, merged with EditModeSwitcher (its container component) - * Removed Legacy Dashboard components: - - * ``LegacyApprovedScheduledDashlet`` - * ``LegacyAwaitingApprovalDashlet`` - * ``LegacyInReviewDashlet`` - * ``LegacyRecentActivityDashlet`` - * ``LegacyRecentActivityDashlet`` - * ``LegacyRecentlyPublishedDashlet`` - * ``LegacyUnpublishedDashlet`` - - * Removed ``documentDomain`` property from ExperienceBuilder component and its usage in ``PreviewConcierge`` component - * ``WorkflowCancellationDialogUI``: prop ``items`` type changed from an async Resource to sync SandboxItem array. - * ``AuthorFilter`` removed, merged with ActivityDashlet - * ``UsersAutocomplete`` removed - * ``UploadDialog``: Added ``autoProceed`` prop to enable/disable automatic upload after file selection - * ``DropDownMenuButton`` component: - - * Internal structure changed so that ListItem wraps the ListItemButton - * ``listItemProps`` are routed to the list ``ListItem`` component instead of the ``ListItemButton`` - * Added ``listItemButtonProps`` property - - * ``DraggablePanelListItem`` prop ``onMenu`` send the pointer event as its first and only argument instead of the anchor element attached to the event. Can get element through ``event.currentTarget``. - * ``DateTimePicker`` was moved & renamed to ``DateTimeTimeZonePicker`` to better reflect its functionality and to avoid collision with MUI's DateTimePicker. - - * Components that used the previous version now use the new DateTimeTimeZonePicker (i.e. CreatePreviewTokenDialog, CreateTokenDialogContainer, PublishDialogForm, PublishDialogContainer, FormEngineControls/DateTime, AudiencesPanelUI) - -* [services] Removed services associated with v1 APIs: - - * ``fetchLegacyGetGoLiveItems`` - * ``fetchLegacyUserActivities`` - * ``fetchLegacyScheduledItems`` - * ``fetchPendingApprovalPackageItems`` - * ``fetchLegacyDeploymentHistory`` - * ``getUserPermissions`` - - * Use ``fetchMyPermissions`` instead - - * [services/contentTypes] Add ``fetchContentType`` service - -* [state] - - * ``actions/dialogs``: Renamed ``updateEditConfig`` action to ``updateEditDialogConfig`` - -* [hooks] - - * ``usePreviewUrlControl``: Removed ``history`` prop. Retrieval of search and navigate (previously called 'push') is now done internally. - -* Removed deprecated ``aws-file-upload`` and ``aws-video`` upload controls. -* Migrated the Studio UI build to Vite/SWC -* Rollup's XB build to use SWC -* Upgraded target compilation to ES2022, dropping many code transforms for features that are supported by most modern browsers such as nullish coalescing, optional chaining, object spreading and destructuring. -* The ``allowedContentTypes`` ContentTypeField validation changed from being an array to a Record -* Remove legacy ``browseCMIS`` dialog and ``openCMISBrowse`` function from common-api. -* Remove ``CMIS-repo``, ``CMIS-upload``, ``img-cmis-repo``, ``img-CMIS-upload``, ``video-cmis-repo`` and ``video-CMIS-upload`` datasources. -* ``ICEConfig`` TypeScript ``interface`` changed to be ``type``. It now accepts either the (model) or (modelId & path). -* The ``acecode`` TinyMCE plugin (for code-highlighted Rich Text Editor code editing), renders the code exactly as Tiny provides without decoding entities. - - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue when editing an item from a node selector `__ -* `Fixed issue with duplicating a site in serverless mode `__ -* `Fixed issue with an XB error when duplicating an item in a repeat group `__ -* `Fixed issue with TinyMCE not saving HTML code properly `__ |br| - See :ref:`working in the RTE with code samples ` for more information on editing code samples in the RTE. -* `Fixed issue with mixed case role names not being recognized by the permission evaluation system `__ -* `Fixed issue with \"File Upload From Desktop\" datasource throwing an error when the dialog is opened and closed `__ -* `Fixed issues with dependency calculations \"getDependentItems\" `__ -* `Fixed issue with rootless Docker images build not working `__ - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - Spring Framework to version 6 - - Spring Boot to version 3 - - Freemarker to version 2.3.33 - - MariaDB to version 11.4 - - MariaDb4J to version 3.1 - - HTTP Proxy to version 2.0 - - UrlRewriteFilter to version 5.1 - - ESAPI to version 2.5.4.0 - - FileUpload to version 2.0 - - Groovy to version 4 - - Tomcat to version 10 - - AWS client library to version 2 - - Studio UI dependencies - - - @craftercms/studio-ui - - - @craftercms/uppy to version 4.2.0 - - @graphiql/plugin-explorer to version 3.0.1 - - @mui/x-data-grid to version 7.13.0 - - @mui/x-date-pickers to version 7.13.0 - - @mui/x-tree-view to version 7.13.0 - - @prettier/plugin-xml to version 3.3.0 - - @reduxjs/toolkit to version 2.2.5 - - @types/ace to version 0.0.52 - - @types/react to version 18.3.2 - - @types/react-dom to version 18.3.0 - - @types/react-swipeable-views to version 0.13.5 - - @types/video.js to version 7.3.58 - - clsx to version 2.1.1 - - fast-xml-parser to version 4.3.6 - - graphiql to version 3.2.2 - - graphql to version 16.8.1 - - graphql-ws to version 5.16.0 - - marked to version 12.0.2 - - marked-highlight to version 2.1.1 - - moment-timezone to version 0.5.45 - - nanoid to version 5.0.7 - - prettier to version 3.2.5 - - react-hotkeys-hook to version 4.5.0 - - tss-react to version 4.9.10 - - query-string to version 9.0.0 - - react-redux to version 9.1.2 - - react-router-dom to version 6.0.0 - - redux to version 5.0.1 - - redux-observable to version 3.0.0-rc.2 - - video.js to version 8.12.0 - - - @craftercms/experience-builder - - - @craftercms/classes to version 4.2.0 - - @craftercms/content to version 4.2.0 - - @craftercms/ice to version 4.2.0 - - @craftercms/search to version 4.2.0 - - @craftercms/studio-ui to version 4.2.0 - - @reduxjs/toolkit to version 2.2.5 - - @rollup/plugin-alias to version 5.1.0 - - @types/react-dom to version 18.3.0 - - react-hotkeys-hook to version 4.5.0 - - react-is to version 18.3.1 - - uuid to version 10.0.0 - - react-redux to version 9.1.2 - - redux to version 5.0.1 - - redux-observable to version 3.0.0-rc.2 - - - @craftercms/search - - - uuid to version 10.0.0 - - - @craftercms/redux - - - @reduxjs/toolkit to version 2.2.2 - - redux to version 5.0.1 - - redux-observable to version 3.0.0-rc.2 - - - @craftercms/classes - - - query-string to version 9.1.0 - -For a complete list of community tickets, please visit: `GitHub 4.2.0 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| diff --git a/source/release-notes/4-2-2.rst b/source/release-notes/4-2-2.rst deleted file mode 100644 index 3ebf3942c..000000000 --- a/source/release-notes/4-2-2.rst +++ /dev/null @@ -1,57 +0,0 @@ -.. index:: CrafterCMS version 4.2.2 Release Notes - ------------------------- -CrafterCMS Version 4.2.2 ------------------------- - -Released *January 15, 2025* - -This release includes fixes for issues with the release version 4.2.0 - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* `Deployer processors improvements `__ - - - Added new options to ``gitPullProcessor`` - - - ``fastForwardMode`` - - ``mergeStrategy`` - - ``contentMergeOption`` - - See :ref:`deployer-git-pull-processor` for more information on the new options. - - - Updated ``mailNotificationProcessor`` default status condition to a new ``SUCCESS`` status (vs current ``ON_ANY_STATUS``). - - Added new ``failedProcessors`` option to ``mailNotificationProcessor`` - - New Deployer processor ``webhookNotificationProcessor`` - - Added support for a new "mute period" for notification processors. - See :ref:`deployer-notification-processors` for more information on the new updates for notification processors - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with permission evaluation of uppercase role names `__ -* `Fixed issue with deleting and recreating an item with the same name and page URL `__ -* `Fixed issue with existing component drag and drop not working when XB is enabled `__ -* `Fixed issue with AWS SSO authentication `__ -* Fixed issue with externally managed users still a part of a group that has been removed from the external authority - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - OpenSearch to version 2.17 - -For a complete list of community tickets, please visit: `GitHub 4.2.2 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| diff --git a/source/release-notes/4-3-0.rst b/source/release-notes/4-3-0.rst deleted file mode 100644 index c24233689..000000000 --- a/source/release-notes/4-3-0.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. index:: CrafterCMS version 4.3.0 Release Notes - ------------------------- -CrafterCMS Version 4.3.0 ------------------------- - -Released *February 21, 2025* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* `Added support for site selection via headers in Preview `__ |br| - -* `Improved extension compatibility versioning `__ |br| - The ``crafterCmsVersions`` field in your :ref:`plugin ` or :ref:`blueprint ` - descriptor file now uses the short version, using the major and minor numbers, e.g. ``4.3``. - - Note that use of the full CrafterCMS version with the major, minor, and patch numbers is still supported for backward - compatibility. Remember to maintain the same version format used (either the short version or the full version) and - not mix them in a plugin version in your descriptor file. - -* `Added support for allowing unauthorized OPTIONS requests to preview `__ |br| - When :ref:`CORS ` is enabled and the CORS request is preflight, preview token validation is skipped. - -* `Improved messaging for folder renames and folder cuts `__ |br| - A message will now be displayed when renaming a folder or cutting a folder to inform users that the action may break - references to items in the folder being renamed/cut. - -* Publishing improvements |br| - - - `The Publish on Demand widget now uses permissions to determine feature availability `__ |br| - The permissions ``publish`` and ``publish_by_commits`` are now used to determine feature availability in the Publish - on Demand widget. Users with the ``publish`` permission gets the ``Publish All`` and ``Publish by Path`` features and - users with the ``publish_by_commits`` gets the ``Publish by Commit Id`` feature in the widget. - - - `Improved flow for On Demand Publishing `__ |br| - When performing a ``Publish All``, the user will now be prompted to confirm the action. - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with item_unlock permission `__ - -* `Fixed issue with parent folder dependency on publish `__ - -* `CrafterCMS's proxy now supports setting multiple cookies `__ - -* `Fixed issue with move operations on items and folders `__ - -* Syncing is now changed such that users are synced based on IdP only for externally managed groups, but local group - membership is unchanged. - -For a complete list of community tickets, please visit: `GitHub 4.3.0 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - -^^^^^^^^^^^^^ -Miscellaneous -^^^^^^^^^^^^^ -* `Removed Box in CrafterCMS `__ |br| - -|hr| diff --git a/source/release-notes/4-3-1.rst b/source/release-notes/4-3-1.rst deleted file mode 100644 index 027b86a24..000000000 --- a/source/release-notes/4-3-1.rst +++ /dev/null @@ -1,56 +0,0 @@ -.. index:: CrafterCMS version 4.3.1 Release Notes - ------------------------- -CrafterCMS Version 4.3.1 ------------------------- - -Released *April 2, 2025* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -New Features -^^^^^^^^^^^^ -* `Engine now has multiple caches `__ - See :ref:`engine-cache` for more information. - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* New configuration property for Studio referrer policy header |br| - See ``Referrer Policy`` under :ref:`Policy Headers ` for more information - -* Added permissions for site developer in global menu |br| - See :ref:`global-permission-mappings-config` for more information. - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with the missing Select All option in the Browse dialog `__ - -* `Fixed issue with inconsistent encoding of backslash in page URLs `__ - -* Groovy script engine is now site-aware. - -* Fixed the missing ``Cluster`` tool in the global menu. - -* `Fixed issue when dissociating the last item in an item selector control from XB `__ - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - OpenSearch to version 2.19.1 - -For a complete list of community tickets, please visit: `GitHub 4.3.1 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-3-2.rst b/source/release-notes/4-3-2.rst deleted file mode 100644 index 9db116ade..000000000 --- a/source/release-notes/4-3-2.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. index:: CrafterCMS version 4.3.2 Release Notes - ------------------------- -CrafterCMS Version 4.3.2 ------------------------- - -Released *May 20, 2025* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* `Improved Docker images `__ - -* Requests with the preview token query string argument (QSA) now has the preview Engine set the site ID and preview - token as cookies in the URL. This allows subsequent requests to automatically reuse the token and site context - without needing to resend them in the URL. |br| - For more information on configuring the behavior of the cookies, see :ref:`engine-preview-cookie`. - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with docker compose deployments `__ - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - GraphQL to version 23.0 - - OpenSearch to version 2.19.2 - - JSP to version 4.0.0 - - Tomcat to version 10.1.41 - - MariaDb4j to version 3.1.0.4 - -For a complete list of community tickets, please visit: `GitHub 4.3.2 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-0.rst b/source/release-notes/4-4-0.rst deleted file mode 100644 index 9bfdc3722..000000000 --- a/source/release-notes/4-4-0.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. index:: CrafterCMS version 4.4.0 Release Notes - ------------------------- -CrafterCMS Version 4.4.0 ------------------------- - -Released *June 13, 2025* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with uppercase role names not recognized by the permission evaluation system `__ -* `Fixed issue with modifying page URL not reloading the page URL on Save & Close `__ -* `Fixed issue with image cropper dialog `__ -* `Fixed issue with inserting links to pages in the RTE `__ -* `Fixed issue with initial publish failing when .keep files exist under the /.crafter folder `__ -* `Fixed issue with site breaking when duplicating an item `__ - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - Tomcat to version 11.0.8 - - Spring Security to version 6.5.0 - - Spring Boot to version 3.5.0 |br| - Please see :ref:`breaking-changes-in-craftercms-4-4-0` for breaking changes related to Spring Boot version 3.5.0 - - Apache HttpClient to version 5.5 - - Jakarta Server Pages API to version 4.0.0 - - Tika to version 3.2.0 - - Apache Commons BeanUtils to version 1.11.0 - - GraphQL to version 24.1 - -For a complete list of community tickets, please visit: `GitHub 4.4.0 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-1.rst b/source/release-notes/4-4-1.rst deleted file mode 100644 index 6eb9bad63..000000000 --- a/source/release-notes/4-4-1.rst +++ /dev/null @@ -1,37 +0,0 @@ -.. index:: CrafterCMS version 4.4.1 Release Notes - ------------------------- -CrafterCMS Version 4.4.1 ------------------------- - -Released *June 19, 2025* - -This release includes fixes for issues with the release version 4.4.0 - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with template names getting lowercased when opening the template editor from the content type or an - item's options menu `__ -* `Fixed issue with Preview failing to reload to reflect changes after editing content `__ - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - Apache Commons FileUpload Jakarta Servlet 6 to version 2.0.0-M4 - -For a complete list of community tickets, please visit: `GitHub 4.4.1 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-2.rst b/source/release-notes/4-4-2.rst deleted file mode 100644 index 780f34ec4..000000000 --- a/source/release-notes/4-4-2.rst +++ /dev/null @@ -1,57 +0,0 @@ -.. index:: CrafterCMS version 4.4.2 Release Notes - ------------------------- -CrafterCMS Version 4.4.2 ------------------------- - -Released *July 11, 2025* - -This release includes fixes for issues with the release version 4.4.1 - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^ -New Feature -^^^^^^^^^^^ -* `New worker thread supervisor mechanism in Deployer `__ |br| - See :ref:`deployer-deployment-supervisor` for more information - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* `Users are now able to navigate to child items in view mode `__ - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* RTE issues - - - `Fixed issue with the page becoming unresponsive when editing a component with multiple RTEs `__ - - `Fixed issue with flashing menu and poor performance for pages with multiple RTEs `__ - - `Fixed issue with users able to save form containing an empty mandatory RTE field `__ - -* `Fixed issue with determination of {parentPath[0]} failing after two parent levels of embedded components `__ -* `Fixed issue with preview when the page is locked with a null value for the lock owner `__ - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - Dom4j to version 2.2.0 - - Saxon-HE to version 12.8 - - jsoup to version 1.21.1 - - okio to version 3.15.0 - - ESAPI to version 2.7.0.0 - -For a complete list of community tickets, please visit: `GitHub 4.4.2 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-3.rst b/source/release-notes/4-4-3.rst deleted file mode 100644 index ee5e22773..000000000 --- a/source/release-notes/4-4-3.rst +++ /dev/null @@ -1,74 +0,0 @@ -.. index:: CrafterCMS version 4.4.3 Release Notes - ------------------------- -CrafterCMS Version 4.4.3 ------------------------- - -Released *September 4, 2025* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -New Features -^^^^^^^^^^^^ -* `New Crafter Studio full disk monitoring `__ |br| - Crafter Studio now watches disk utilization for the data directory and sends configurable notifications when the - threshold is reached. For more information on configuring the notifications and thresholds, see :ref:`studio-disk-monitoring` . - - To get the disk usage statistics, use the `getDiskUsage <../_static/api/studio.html#tag/monitoring/operation/getDiskUsage>`__ API. - -* `Smart Git in Git HTTPS server is now supported `__ |br| - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* Added new Studio git config properties |br| - See :ref:`git-configuration` for more information on configuring the Git options "gc.prunePackExpire" and "gc.autoPackLimit". - -* `Item Selector now shows view options for file types with preview support `__ |br| - -""""""""" -Studio UI -""""""""" -- Upgrade to the latest version to date of the following libraries: - - @mui/icons-material - @mui/lab - @mui/material - @mui/x-data-grid - @mui/x-date-pickers - @mui/x-tree-view - -- [utils/content]: - - * Moved ``isVideo``, ``isAudio` and ``isPdfDocument`` functions from ``PathNavigator/utils.ts`` to ``utils/content.ts``. - -- CrafterCMS version 4.4.3 works with JavaScript SDK version 5.0.0 and later as mentioned in :ref:`breaking-changes-in-craftercms-4-4-3`. - See :ref:`compatibility-with-craftercms-version` for more information. - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - MUI to version 7 - - OkHttp to version 5.1.0 - - Netty to version 4.1.124 - - Mockito to version 5.19 - - Protocol buffers to version 4.32 - - Handlebars to version 4.5 - - Commons-cli to version 1.10 - - Jgit to version 7.3 - - OpenSearch to version 2.19.3 - -For a complete list of community tickets, please visit: `GitHub 4.4.3 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-4.rst b/source/release-notes/4-4-4.rst deleted file mode 100644 index 014fdd2f2..000000000 --- a/source/release-notes/4-4-4.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. index:: CrafterCMS version 4.4.4 Release Notes - ------------------------- -CrafterCMS Version 4.4.4 ------------------------- - -Released *September 6, 2025* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - Netty (netty-codec-http) to version 4.1.126.Final - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-5e.rst b/source/release-notes/4-4-5e.rst deleted file mode 100644 index 0d350feba..000000000 --- a/source/release-notes/4-4-5e.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. index:: CrafterCMS version 4.4.5E Release Notes - ------------------------------------------- -CrafterCMS Version 4.4.5E |enterpriseOnly| ------------------------------------------- -Released *September 20, 2025* |br| -*This release is an enterprise-only release.* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -Noteworthy dependency updates: - -- MariaDB4j to version 3.1.0.5 -- Spring Security to version 6.5.4 -- Spring Core to version 6.2.11 - - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-6e.rst b/source/release-notes/4-4-6e.rst deleted file mode 100644 index addde3de4..000000000 --- a/source/release-notes/4-4-6e.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. index:: CrafterCMS version 4.4.6E Release Notes - ------------------------------------------- -CrafterCMS Version 4.4.6E |enterpriseOnly| ------------------------------------------- -Released *October 14, 2025* |br| -*This release is an enterprise-only release.* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -- Removed BouncyCastle jdk15 -- Removed OpenSearch analytics module - - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-7e.rst b/source/release-notes/4-4-7e.rst deleted file mode 100644 index cf926aafa..000000000 --- a/source/release-notes/4-4-7e.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. index:: CrafterCMS version 4.4.7E Release Notes - ------------------------------------------- -CrafterCMS Version 4.4.7E |enterpriseOnly| ------------------------------------------- -Released *December 5, 2025* |br| -*This release is an enterprise-only release.* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -Noteworthy dependency updates: - -- OpenSearch to version 2.19.4 - - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-4-8e.rst b/source/release-notes/4-4-8e.rst deleted file mode 100644 index 5503d76d3..000000000 --- a/source/release-notes/4-4-8e.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. index:: CrafterCMS version 4.4.8E Release Notes - ------------------------------------------- -CrafterCMS Version 4.4.8E |enterpriseOnly| ------------------------------------------- -Released *January 12, 2026* |br| -*This release is an enterprise-only release.* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with repeat group validation `__ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-5-0.rst b/source/release-notes/4-5-0.rst deleted file mode 100644 index 795e57d3e..000000000 --- a/source/release-notes/4-5-0.rst +++ /dev/null @@ -1,81 +0,0 @@ -.. index:: CrafterCMS version 4.5.0 Release Notes - ------------------------- -CrafterCMS Version 4.5.0 ------------------------- - -Released *January 23, 2026* - -.. important:: - - Please see :ref:`Breaking changes ` for breaking changes and other - things to consider before upgrading - - For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` - -^^^^^^^^^^^^ -New Features -^^^^^^^^^^^^ -* New Groovy sandbox whitelists |br| - See :ref:`Deployer Groovy Sandbox `, - :ref:`Engine Groovy Sandbox ` and - :ref:`Studio Groovy Sandbox ` for more information on configuring the whitelists. - -* Improved serverless performance |enterpriseOnly| |br| - Improved startup and first page load speeds by using Redis/ValKey as a cache in front of S3. - -* `New maintenance mode to lock non-admin end users out of Studio during maintenance `__ |enterpriseOnly| |br| - See :ref:`settings` for more information on enabling/disabling maintenance mode in Crafter Studio and - :ref:`author-maintenance-mode` for the screens displayed during maintenance mode. - - Using the API :base_url:`Set system maintenance mode status <_static/api/studio.html#tag/system/operation/setMaintenanceMode>` - also allows you to enable/disable maintenance mode. - -^^^^^^^^^^^^ -Enhancements -^^^^^^^^^^^^ -* `New configurable properties for search connection pool max values for total connections and connections per route `__ |br| - See the :ref:`Deployer `, :ref:`Engine `, - and :ref:`Studio ` search configuration sections for more information. - -* `Improved query performance and OpenSearch caching `__ |br| - CrafterCMS by default now excludes disabled and expired content from search results via default filters. See :ref:`engine-search-default-filters` for more - information on enabling/disabling the default filters. - -* `Search input field is now in focus when clicking the search button `__ - -^^^^^^^^^ -Bug Fixes -^^^^^^^^^ -* `Fixed issue with repeating group control `__ - -* `Fixed issue with deleting a renamed folder `__ - -* `Fixed issue with Studio UI breaking when searching for a user with [SA] in the name `__ |br| - Square brackets are now allowed by default in search queries. To allow other characters not permitted by default in search queries, - simply modify the ``studio.validation.regex.SEARCH_KEYWORDS`` property in the Studio :ref:`Global Config `. - - See :ref:`studio-validations-regex` to learn more on configuring the regex for validating user names to suit your needs. - -* Fixed issue with the load order for BouncyCastle jars - -* Fixed issue with unmapped user groups during SSO login - -^^^^^^^^^^^^^^^^^^ -Dependency Updates -^^^^^^^^^^^^^^^^^^ -* Noteworthy dependency updates: - - - Spring security to version 6.5.7 - - Spring Core to version 6.2.15 - - Tomcat to version 11.0.15 - - Mariadb4j to version 3.1.0.5 - - OpenSearch to version 3.3 |br| - Please see :ref:`breaking-changes-in-craftercms-4-5-0` for some important changes in OpenSearch 3.3 - -For a complete list of community tickets, please visit: `GitHub 4.5.0 `_ - -For information on upgrading 3.1.x sites, see :ref:`here ` - -|hr| - diff --git a/source/release-notes/4-x-breaking-changes.rst b/source/release-notes/4-x-breaking-changes.rst deleted file mode 100644 index e2eb3709d..000000000 --- a/source/release-notes/4-x-breaking-changes.rst +++ /dev/null @@ -1,325 +0,0 @@ -:is-up-to-date: True -:last-updated: 4.5.0 -:orphan: - -.. _breaking-changes-4-x: - -================================ -Breaking Changes in CrafterCMS 4 -================================ -This section covers changes that might affect your CrafterCMS projects, as well as other considerations -before upgrading. Please review the following and apply changes as required: - -- CrafterCMS requires Java 21. |br| See :ref:`Requirements ` for more - information on CrafterCMS requirements. - -- CrafterCMS now uses Jakarta EE. |br| The ``jakarta.*`` namespace is now used instead of ``javax.*``. - To update your project, find and replace ``javax`` with ``jakarta`` in your Groovy code or Java if you are - bringing in jars with Grab. - -- CrafterCMS has upgraded the AWS client library to version 2. |br| This may contain breaking changes that impact custom Java and - Groovy code. See https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration.html for more information - on the changes in the library that may affect your project/s. - -|hr| - -.. _breaking-changes-in-craftercms-4-5-0: - ------------------------------------- -Breaking Changes in CrafterCMS 4.5.0 ------------------------------------- -- OpenSearch 3 has removed the **_toQuery()** method from the ``QueryVariant`` interface. ``QueryVariant`` is the base for - Query variants, e.g.: BoolQuery, FuzzyQuery, MatchQuery, etc. - - Search-related Groovy scripts might need to be updated to use **toQuery()** instead. Below is an example of a query - that will need to be updated: - - .. code-block:: groovy - :caption: *Sample OpenSearch 2.x _toQuery() method that needs to be updated* - :emphasize-lines: 2 - - SearchRequest request = SearchRequest.of(r -> r - .query(query.build()._toQuery()) - .from(start) - .size(rows) - .highlight(highlighter.build()) - ) - - Here's the updated query: - - .. code-block:: groovy - :caption: *Updated query with OpenSearch 3.x toQuery() method* - :emphasize-lines: 2 - - SearchRequest request = SearchRequest.of(r -> r - .query(query.build().toQuery()) - .from(start) - .size(rows) - .highlight(highlighter.build()) - ) - -- Automatic grapes download for scripts (@grab) is disabled by default. - - See :ref:`Studio `, :ref:`Engine ` and :ref:`Deployer ` - grapes configuration for more information on enabling automatic grapes download. - -.. _breaking-changes-in-craftercms-4-4-3: - ------------------------------------- -Breaking Changes in CrafterCMS 4.4.3 ------------------------------------- -CrafterCMS version 4.4.3 works with JavaScript SDK version 5.0.0 and later. See :ref:`compatibility-with-craftercms-version` -for more information. - -|hr| - -.. _breaking-changes-in-craftercms-4-4-0: - ------------------------------------- -Breaking Changes in CrafterCMS 4.4.0 ------------------------------------- -Spring Boot 3.5 has updated the profile naming rules. Only dash( `-` ), underscore( `_` ), letters and digits are allowed now. -We are updating spring profile names across CrafterCMS to comply with the new rules. So far only Deployer -(the one using spring boot) would be affected. However, for consistency, we are updating all profiles even if not -related to the Deployer - -Here's the list of updated spring profile names: - -.. list-table:: - :header-rows: 1 - - * - Old Profile Name - - New Profile Name - * - crafter.studio.dbClusterPrimaryReplica - - crafter_studio_dbClusterPrimaryReplica - * - crafter.studio.externalDb - - crafter_studio_externalDb - * - crafter.studio.samlSecurity - - crafter_studio_samlSecurity - * - crafter.engine.samlSecurity - - crafter_engine_samlSecurity - * - crafter.core.applicationCache - - crafter_core_applicationCache - -If you are using any of the old profile names listed above, admins will need to update the configuration overrides -to use the new profile names. These are usually configured in the ``crafter-setenv.sh`` file located under the -``CRAFTER_HOME/bin/`` folder. - -|hr| - ------------------------------------- -Breaking Changes in CrafterCMS 4.3.0 ------------------------------------- -- CrafterCMS 4.3.0 has removed Box support. |br| - See https://github.com/craftercms/craftercms/issues/7728 for more information. - -- The following APIs are removed from CrafterCMS 4.3.0: - - ``/api/1/services/api/1/repo/sync-from-repo.json`` - -|hr| - ------------------------------------- -Breaking Changes in CrafterCMS 4.2.2 ------------------------------------- -CrafterCMS uses TinyMCE version 7 for the RTE control. -The following properties were removed from the RTE control in CrafterCMS version 4.2.2: - -- ``Force Root Block p Tag`` - - This property uses the ``forced_root_block`` option in TinyMCE to set it to a ``true``/``false`` value. Starting in - `TinyMCE version 6 `__, this option no-longer - accepts the ``false`` value or an empty string value. Setting ``forced_root_block`` to ``false`` is not compatible - with Real-time Collaboration and also blocks various editor functions from working correctly and causes non-semantic - HTML to be generated. Newer options are now available for handling line breaks and paragraphs, like the - `newline_behavior `__. -- ``Force br New Lines`` - - This property uses the ``force_br_newlines`` option in TinyMCE version 3 and 4. Starting with TinyMCE 5.x, the handling - of line breaks and paragraphs became more standardized, and newer options like - `newline_behavior `__ were - introduced to provide greater flexibility for managing line breaks. The ``force_br_newlines`` option is no longer - actively recommended in newer versions due to potential issues with content formatting and compatibility with modern - HTML standards, hence the removal of the ``Force br New Lines`` property. - -To customise the new behaviours mentioned above, use the :ref:`TinyMCE config ` in the -:ref:`User Interface Configuration ` ``ui.xml`` - -|hr| - ------------------------------------- -Breaking Changes in CrafterCMS 4.2.0 ------------------------------------- -The following APIs are removed from CrafterCMS 4.1 to 4.2: - -- ``/api/1/services/api/1/publish/publish-items.json`` -- ``/api/1/services/api/1/publish/reset-staging.json`` -- ``/api/1/services/api/1/dependency/calculate-dependencies.json`` -- ``/api/1/services/api/1/content/content-exists.json`` - -Below are the APIs that are now removed from CrafterCMS 4.2. Note that most of the APIs in the list has been deprecated -in previous versions: - -.. list-table:: - :header-rows: 1 - - * - API - - URL - - New API - * - Clear Configuration Cache - - ``/api/1/services/api/1/site/clear-configuration-cache.json`` - - `clearConfigurationCache <../_static/api/studio.html#tag/configuration/operation/clearConfigurationCache>`__ - * - Get Available Blueprints - - ``/api/1/services/api/1/site/get-available-blueprints.json`` - - `availableBlueprints <../_static/api/studio.html#tag/sites/operation/availableBlueprints>`__ - * - Get Configuration - - ``/api/1/services/api/1/site/get-configuration.json`` - - `getConfiguration <../_static/api/studio.html#tag/configuration/operation/getConfiguration>`__ - * - Write Configuration - - ``/api/1/services/api/1/site/write-configuration.json`` - - `writeConfiguration <../_static/api/studio.html#tag/configuration/operation/writeConfiguration>`__ - * - Add Remote - - ``/api/1/services/api/1/repo/add-remote.json`` - - `addRemoteRepository <../_static/api/studio.html#tag/repository/operation/addRemoteRepository>`__ - * - List Remote Repositories - - ``/api/1/services/api/1/repo/list-remote.json`` - - `listRemoteRepositories <../_static/api/studio.html#tag/repository/operation/listRemoteRepositories>`__ - * - Pull From Remote - - ``/api/1/services/api/1/repo/pull-from-remote.json`` - - `pullFromRemoteRepository <../_static/api/studio.html#tag/repository/operation/pullFromRemoteRepository>`__ - * - Push To Remote - - ``/api/1/services/api/1/repo/push-to-remote.json`` - - `pushToRemoteRepository <../_static/api/studio.html#tag/repository/operation/pushToRemoteRepository>`__ - * - Rebuild Database - - ``/api/1/services/api/1/repo/rebuild-database.json`` - - `syncFromRepo <../_static/api/studio.html#tag/repository/operation/syncFromRepo>`__ - * - Remove Remote - - ``/api/1/services/api/1/repo/remove-remote.json`` - - `removeRemoteRepository <../_static/api/studio.html#tag/repository/operation/removeRemoteRepository>`__ - * - Get Audit - - ``/api/1/services/api/1/audit/get.json`` - - `getAuditLog <../_static/api/studio.html#tag/audit/operation/getAuditLog>`__ - * - Publish Items - - ``/api/1/services/api/1/publish/publish-items.json`` - - `operation/workflowPublish <../_static/api/studio.html#tag/workflow/operation/workflowPublish>`__ - * - Publish Status - - ``/api/1/services/api/1/publish/status.json`` - - `getPublishingStatus <../_static/api/studio.html#tag/publishing/operation/getPublishingStatus>`__ - * - Reset Staging Publishing Target - - ``/api/1/services/api/1/publish/reset-staging.json`` - - - * - Get dependencies - - ``/api/1/services/api/1/dependency/get-dependencies.json`` - - `getSimpleDependencies <../_static/api/studio.html#tag/dependency/operation/getSimpleDependencies>`__ - * - Get Deployment History - - ``/api/1/services/api/1/deployment/get-deployment-history.json`` - - `getDashboardPublishingHistory <../_static/api/studio.html#tag/dashboard/operation/getDashboardPublishingHistory>`__ - * - Get Scheduled Items - - ``/api/1/services/api/1/deployment/get-scheduled-items.json`` - - `getPublishingScheduled <../_static/api/studio.html#tag/dashboard/operation/getPublishingScheduled>`__ - * - Crop Image - - ``/api/1/services/api/1/content/crop-image.json`` - - - * - Set Item State - - ``/api/1/services/api/1/content/set-item-state.json`` - - `setItemStates <../_static/api/studio.html#tag/workflow/operation/setItemStates>`__ - * - Unlock Content Item - - ``/api/1/services/api/1/content/unlock-content.json`` - - `itemUnlockByPath <../_static/api/studio.html#tag/content/operation/itemUnlockByPath>`__ - * - Content Exists - - ``/api/1/services/api/1/content/content-exists.json`` - - `contentExists <../_static/api/studio.html#tag/content/operation/contentExists>`__ - * - Get UI Resource Override - - ``/api/1/services/api/1/server/get-ui-resource-override.json`` - - - * - Transcode - - ``/api/1/services/api/1/aws/elastictranscoder/transcode.json`` - - - * - AWS S3 Upload - - ``/api/1/services/api/1/aws/s3/upload.json`` - - `uploadItem <../_static/api/studio.html#tag/aws/operation/uploadItem>`__ - * - MediaConvert - - ``/api/1/services/api/1/aws/mediaconvert/upload.json`` - - `uploadVideo <../_static/api/studio.html#tag/aws/operation/uploadVideo>`__ - * - Get User Activity - - ``/api/1/services/api/1/activity/get-user-activities.json`` - - `getDashboardMyActivities <../_static/api/studio.html#tag/dashboard/operation/getDashboardMyActivities>`__ - * - Post Activity - - ``/api/1/services/api/1/activity/post-activity.json`` - - - * - Copy Item - - ``/api/1/services/api/1/clipboard/copy-item.json`` - - - * - Cut Item - - ``/api/1/services/api/1/clipboard/cut-item.json`` - - - * - Get Items - - ``/api/1/services/api/1/clipboard/get-items.json`` - - - * - Paste Item - - ``/api/1/services/api/1/clipboard/paste-item.json`` - - - * - Get User Roles - - ``/api/1/services/api/1/security/get-user-roles.json`` - - `getUserSiteRoles <../_static/api/studio.html#tag/users/operation/getUserSiteRoles>`__ - * - Get user permissions for project/site and space (path) - - ``/api/1/services/api/1/security/get-user-permissions.json`` - - - * - Login - - ``/api/1/services/api/1/security/login.json`` - - - * - Logout - - ``/api/1/services/api/1/security/logout.json`` - - - * - List WebDAV - - ``/api/1/services/api/1/webdav/list.json`` - - - * - Upload to WebDAV - - ``/api/1/services/api/1/webdav/upload.json`` - - - * - Create Jobs - - ``/api/1/services/api/1/workflow/create-jobs.json`` - - `workflowCreatePackage <../_static/api/studio.html#tag/workflow/operation/workflowCreatePackage>`__ - * - Get Go Live Items - - ``/api/1/services/api/1/workflow/get-go-live-items.json`` - - `getDashboardContentPendingApprovalDetail <../_static/api/studio.html#tag/dashboard/operation/getDashboardContentPendingApprovalDetail>`__ - * - Get Workflow Affected Paths - - ``/api/1/services/api/1/workflow/get-workflow-affected-paths.json`` - - `getWorkflowAffectedPaths <../_static/api/studio.html#tag/workflow/operation/getWorkflowAffectedPaths>`__ - * - Go Delete - - ``/api/1/services/api/1/workflow/go-delete.json`` - - `contentDelete <../_static/api/studio.html#tag/content/operation/contentDelete>`__ - * - Go Live - - ``/api/1/services/api/1/workflow/go-live.json`` - - `bulkGoLive <../_static/api/studio.html#tag/deployment/operation/bulkGoLive>`__ - * - Reject - - ``/api/1/services/api/1/workflow/reject.json`` - - `workflowReject <../_static/api/studio.html#tag/workflow/operation/workflowReject>`__ - * - Request Publishing - - ``/api/1/services/api/1/workflow/submit-to-go-live.json`` - - `workflowRequestPublish <../_static/api/studio.html#tag/workflow/operation/workflowRequestPublish>`__ - * - Calculate Dependencies - - ``/api/1/services/api/1/dependency/calculate-dependencies.json`` - - - -|hr| - -.. _compatibility-with-3.1.x: - ---------------------- -Upgrading 3.1.x Sites ---------------------- - - - MongoDB in CrafterCMS Social and Profile has been updated. To upgrade MongoDB in your installation, see - :ref:`upgrading-mongodb` - - - CrafterCMS 4.1.x onward requires Git. |br| See :ref:`Requirements ` for more - information on CrafterCMS requirements. - - - CrafterCMS 4.1.x onward has a new Studio UI. To get the same Sidebar you're used to, update - the :ref:`user-interface-configuration` - - - Update ICE to move to :ref:`XB ` - - - Studio and Engine SAML configuration now uses a key and certificate for configuration instead of using keystore. |br| - See :ref:`engine-saml2-configuration` and :ref:`crafter-studio-configure-studio-saml` for more information. diff --git a/source/release-notes/5-0-0.rst b/source/release-notes/5-0-0.rst new file mode 100644 index 000000000..450124a19 --- /dev/null +++ b/source/release-notes/5-0-0.rst @@ -0,0 +1,327 @@ +.. index:: CrafterCMS 5.0.0 Release Notes + +---------------- +CrafterCMS 5.0.0 +---------------- + +Released *TBD* + +.. important:: + + Please see :ref:`Breaking changes ` for breaking changes and other + things to consider before upgrading + + For instructions on how to update your CrafterCMS install, please see :ref:`upgrading-craftercms` + +^^^^^^^^^^^^ +New Features +^^^^^^^^^^^^ +* **New publishing system** + + - New publishing permissions: + + - publish_approve: approve a publish package + - publish_cancel: cancel a publish package + - publish_get_queue: get the publishing queue + - publish_reject: reject a publish package awaiting approval + - publish_request: submit a publish package for approval and/or publishing + + See :ref:`permission-mappings` for more information on the new and existing permissions. + +* **New v2 Studio APIs** + + - :base_url:`Get group by name <_static/api/studio.html#tag/groups/operation/getGroupByName>`: GET /api/2/groups/by_name/{name} + - :base_url:`Get the git log for a site repository <_static/api/studio.html#tag/repository/operation/getRepositoryLog>`: GET /api/2/repository/log + - :base_url:`Upload file <_static/api/studio.html#tag/content/operation/contentUpload>`: PUT /api/2/content/{siteId} + - :base_url:`Write content <_static/api/studio.html#tag/content/operation/contentWrite>`: POST /api/2/content/{siteId} + - :base_url:`Move content <_static/api/studio.html#tag/content/operation/contentMove>`: POST /api/2/content/{siteId}/move + - :base_url:`Move and update content <_static/api/studio.html#tag/content/operation/contentMoveAndUpdate>`: POST /api/2/content/{siteId}/move_and_update + - :base_url:`Revert content <_static/api/studio.html#tag/content/operation/contentRevert>`: POST /api/2/content/{siteId}/revert + - :base_url:`Create folder <_static/api/studio.html#tag/content/operation/contentCreateFolder>`: POST /api/2/content/{siteId}/folder + - :base_url:`Get list of dependent items for given content path <_static/api/studio.html#tag/dependency/operation/getDependentItems>`: GET /api/2/dependency/{siteId}/dependent_items + - :base_url:`Calculate the publish package given an item set <_static/api/studio.html#tag/publishing/operation/calculatePublishPackage>`: POST /api/2/publish/{siteId}/calculate + - :base_url:`Publishes the given content to the target (staging or live) <_static/api/studio.html#tag/publishing/operation/publish>`: POST /api/2/publish/{siteId}/package + - :base_url:`Get the list of packages in the publishing queue <_static/api/studio.html#tag/publishing/operation/GetPublishPackages>`: GET /api/2/publish/{siteId}/packages + - :base_url:`Get package details <_static/api/studio.html#tag/publishing/operation/getPublishPackage>`: GET /api/2/publish/{siteId}/package/{packageId} + - :base_url:`Get publish package items <_static/api/studio.html#tag/publishing/operation/getPublishPackageItems>`: GET /api/2/publish/{siteId}/package/{packageId}/items + - :base_url:`Recalculate a complete publish package user-requested items <_static/api/studio.html#tag/publishing/operation/recalculatePublishPackage>`: POST /api/2/publish/{siteId}/package/{packageId}/recalculate + - :base_url:`Get publishing status for site <_static/api/studio.html#tag/publishing/operation/getPublishingStatus>`: GET /api/2/publish/{siteId}/status + - :base_url:`Enable/disable publishing for a site <_static/api/studio.html#tag/publishing/operation/enablePublishing>`: POST /api/2/publish/{siteId}/enable + - :base_url:`Get available languages <_static/api/studio.html#tag/system/operation/getAvailableLanguages>`: GET /api/2/system/available_languages + - :base_url:`Get workflow affected packages <_static/api/studio.html#tag/workflow/operation/getWorkflowAffectedPackages>`: GET /api/2/workflow/{site}/affected_packages + - :base_url:`Approve request publish submission <_static/api/studio.html#tag/workflow/operation/workflowApprove>`: POST /api/2/workflow/{site}/approve + - :base_url:`Reject publish package <_static/api/studio.html#tag/workflow/operation/workflowReject>`: POST /api/2/workflow/{site}/reject + - :base_url:`Cancel publish packages <_static/api/studio.html#tag/workflow/operation/cancelPublishPackages>`: POST /api/2/workflow/{site}/cancel + +* **New content type controller script** |br| + + - The new content type controller script now uses a new ``lifecycleContent`` object that provides access to the content + being written. See :ref:`server-side-form-controllers` for more information on content type controller scripts. + + - New :ref:`content processor configuration properties ` for configuring access to the + ``applicationContext`` variable and adding to the list of available beans in the content type controller scripts. + + Note that the ``applicationContext`` variable is now disabled by default and can be enabled by setting the property + ``studio.contentProcessor.contentLifecycle.includeApplicationContext`` to ``true`` as described :ref:`here ` + +^^^^^^^^^^^^ +Enhancements +^^^^^^^^^^^^ +* `Git CLI is now always enabled in Studio `__ |br| + The Git CLI enabled config has been removed from the Studio configuration file. + Crafter Studio now requires Git 2.20.1 and later installed. + +* `Improved Studio cluster sync failure notifications and monitoring `__ |br| + +* `Improved Git clean up task `__ |br| + +* `Groovy classes are now accessible to Content Type controllers `__ |br| + +* `Improved notification message models `__ |br| + + - The following new variables are now used in the ``notification-config.xml`` notification configuration file: + + - ``publishPackage``: PublishPackage object + + .. raw:: html + +
+ PublishPackage object + + .. code-block:: java + + long id; + long siteId; + Site site; + String target; + Instant schedule; + ApprovalState approvalState; + long packageState; + int liveError; + int stagingError; + long submitterId; + String submitterComment; + Instant submittedOn; + Long reviewerId; + String reviewerComment; + Instant reviewedOn; + Instant publishedOn; + PackageType packageType; + String commitId; + String publishedStagingCommitId; + String publishedLiveCommitId; + + .. raw:: html + +
+ + - ``reviewer``: the reviewer user |br| + The ``reviewer`` user replaces the ``approver`` and ``userThatRejects`` users in your notification configuration files + + - The maximum number of items to include in the workflow notification messages can now be configured via the property + ``studio.workflow.notification.maxItemCount``. + + See the :ref:`notifications-configuration` for more information. + +* To get the content of an item, please use the :base_url:`Get item <_static/api/engine.html#tag/content/operation/getItem>` API. |br| + `The deprecated Engine REST API Get Descriptor /api/1/site/content_store/descriptor is now removed `__. + +""""""""" +Studio UI +""""""""" +- [utils/resource] Removed ``createFakeResource``, ``createResource`` and ``createResourceBundle`` utils. +- [utils/content]: + + - Removed ``parseLegacyItemToBaseItem``, ``parseLegacyItemToSandBoxItem`` and ``parseLegacyItemToDetailedItem``. + Replaced by ``parseLegacyItemToContentItem``. + - Moved ``PathNavigator/utils.ts`` ``isVideo``, ``isAudio`` and ``isPdfDocument`` functions to ``utils/content.ts``. +- [components] + + - Removed ``pages``/``QuickCreateMenu`` component. + - Removed ``SuspenseWithEmptyState`` and ``WithEmptyState`` components. + - Removed ``resource`` prop from StoreProvider + - Removed ``styles`` prop from ``ErrorState``, ``ApiResponseErrorState``, ``BlueprintForm``, ``LoadingState``, ``ConfirmDialog``, ``AlertDialog``, ``LauncherSection``, ``AceEditor``, ``ItemDisplay``, ``PasswordRequirementsDisplay``, ``PublishDialogForm``, ``ItemStateIcon``, ``ResizeableDrawer``, ``GlobalAppToolbar``, ``ViewToolbar``, ``PublishingStatusAvatar``, ``ItemPublishingTargetIcon`` and ``EmptyState``. Replaced by ``sxs`` prop. + - Removed ``sectionStyles`` and ``tileStyles`` props from ``LauncherGlobalNav``. Replaced with ``sectionSxs`` and ``tileSxs``. + - Added ``sxs`` prop to ``CrafterCMSLogo``, ``SiteSwitcherSelect``, ``ConfirmDialog``, ``ContextMenu``, ``BlueprintForm``, ``ErrorState``, ``GlobalAppToolbar``, ``ItemActionsMenu``, ``ItemDisplay``, ``ItemMegaMenuUI``, ``ItemPublishingTargetIcon``, ``ItemStateIcon``, ``LauncherSectionUI``, ``LauncherSiteCard``, ``LauncherTile``, ``LoadingState``, ``LoginForm``, ``LogoAndMenuBundleButton``, ``PagesSearchAhead``, ``PasswordRequirementsDisplay``, ``PathNavigator``, ``PathNavigatorBreadcrumbs``, ``PathNavigatorHeader``, ``PathNavigatorList``, ``PathNavigatorUI``, ``PathNavigatorTree``, ``PathNavigatorTreeItem``, ``PathNavigatorTreeUI``, ``PublishDialogForm``, ``PublishingStatusAvatar``, ``PublishingStatusTile``, ``ResizeableDrawer``, ``SearchBar``, ``SingleItemSelector``, ``SiteTools``, ``ToolPanel``, ``ViewToolbar`` and ``CrafterCMSIcon``. + - Added ``sx`` prop to ``FilterDropdown``, ``PathNavigatorHeader``, ``SiteTools``, ``SiteSearchFilters`` and ``PublishingStatusAvatar``. + - Removed ``RejectDialog`` component. Now handled by ``PublishingPackageReviewDialog``. + - Removed ``emailOnApprove`` option from ``PublishDialog`` form. + - Removed ``PublishDialog/styles.ts`` file. + - ``PackageDetailsDialog``: Updated ``packageId`` prop to be of type ``number``. + - ``PublishOnDemandForm``: Removed ``bulkPublishCommentRequired`` and ``publishByCommitCommentRequired`` props. + - ``PublishingQueue/FilterDropdown``: Removed ``filterStates`` prop. + - ``PublishingQueue/PublishingPackage``: Removed ``id``, ``schedule``, ``approver``, ``state``, ``environment``, ``comment``, ``filesPerPackage`` and ``setFilesPerPackage`` properties. Added ``pkg`` property of type ``PublishPackage``. + - ``PackageDetailsDialog``: Update packageId prop to be of type number. + - Removed ``WorkflowCancellationDialog``. Replaced by ``ViewPackagesDialog``. + - Removed ``UnlockPublisherDialog`` component. + - ``PackageItems``: Component no longer shows the publishing target icon for items. + - [ChangeContentTypeDialog] ``rootPath``, ``compact``, ``selectedContentType`` props removed. Prop ``initialCompact`` added. + - [ContentTypesFilter] Completely redone. Props are now same as @mui/material/SelectProps + - [NewContentCard] Removed + - [ContentTypesGrid] Removed + - [ContentTypesLoader] Removed + - [NewContentDialog] Props ``rootPath``, ``compact`` removed. Prop ``initialCompact`` added. + + - Prop ``onContentTypeSelected`` changed its signature from sending an object with ``authoringBase``, ``path``, ``isNewContent``, ``contentTypeId``, ``onSaveSuccess`` to ``{ path: string; contentType: ContentType }`` + - [CompareVersions] Removed. + - [EnhancedDialog] Removed unused ``id`` prop. + - [CompareVersionsDialog] Added ``subtitle``, ``selectionContent``, and ``fields`` properties. + - [ViewVersionDialog] Added ``onClose`` property. + - [ViewVersionDialogContainer] Added ``contentTypesBranch``, ``showXml`` and ``data`` properties. + - [DeleteDialog] Removed ``childItems`` and ``dependentItems`` props. Dependencies are not in redux state anymore. + - [RenameAssetDialog] Removed ``dependantItems`` and ``fetchingDependantItems`` props. Dependencies are not in redux state anymore. + - [PublishingStatusTile] Removed ``enabled`` and ``status`` properties. Replaced with ``publishingStatus`` (type ``PublishingStatus``). + - [PublishDialog] + - Added ``buildPathTrees`` util that builds a tree structure from a list of paths, grouping them by root directories. + - [PublishDialogForm] + - Removed ``state``, ``published``, ``publishingTargetsStatus``, ``onPublishingChannelsFailRetry``, ``submissionCommentRequired``, ``publishingChannels`` and ``onChange`` props. Added ``onSubmit``, ``formState``, ``onInputChange``, ``onDateTimePickerChange``, ``showRequestApproval``, ``isPromote``, and ``onFetchedPublishedTargets`` props. + - Updated ``PublishFormProps`` type to ``PublishDialogFormProps`` interface. + - [PublishingStatusButtonUI] Removed ``numberOfItems``, ``totalItems`` and ``status`` properties. Added ``published`` and ``currentTask`` properties. + - Added dialogs: ``CancelPackageDialog``, ``BulkCancelPackageDialog``, ``PublishPackageReviewDialog``, ``PublishingPackageResubmitDialog``, ``ViewPackagesDialog``. + - [RenameAssetDialog] Removed ``path`` and ``value`` properties. Replaced with ``item`` property. + - [ItemDisplay] Updated ``item`` prop to be of type ``LightItem | ContentItem``. + - ``PathNavigator/PathNavigatorTree``: Updated ``label`` prop to be of type ``TranslationOrText``. + - ``PathNavigatorTreeUI/PathNavigatorUI/PathNavigatorTreeHeader``: Updated ``title`` prop to be of type ``string | ReactNode``. + - Removed ``LegacyComponentsPanel`` component. + - [EditGroupDialogUI] Updated ``onFetchMoreUsers`` prop return type to ``Promise``. + - [PackageItemsList] Updated ``loadNextPage`` prop return type to ``Promise``. + - [TransferListColumn] Updated ``onFetchMore`` prop return type to ``Promise``. + +- [hooks] + - Removed ``useLogicResource`` hook. + - Removed ``useSelectorResource`` hook. + - Removed ``useQuickCreateListResource`` hook. + - Removed ``useSystemVersionResource`` hook. + - Removed ``useResolveWhenNoNullResource`` hook. + - Renamed ``useDetailedItem`` to ``useContentItem``. + - Removed ``useDetailedItems`` hook. Use ``useFetchContentItems`` instead. + - Renamed ``useFetchSandboxItems`` to ``useFetchContentItems``. + - Upgrade to the latest version to date of the following libraries: + + - @mui/icons-material + - @mui/lab + - @mui/material + - @mui/x-data-grid + - @mui/x-date-pickers + - @mui/x-tree-view + - Uppy + - GraphiQL + - react-window + + - Moved ``getPersonFullName`` to ``utils/object`` + - FE2 TODO: image=>image-picker, text=>input, etc services/contentType typeMap removed + - Removed ``WidgetDialogContextType``, ``WidgetDialogContext``, ``useWidgetDialogContext``. Use ``useEnhancedDialogContext`` instead. + - [services] + + - ``publishing/fetchPackages`` filters param updated to be a Partial of ``target``, ``states``, ``approvalStates``, ``submitter``, ``reviewer``, ``isScheduled``, ``sort``, ``offset`` and ``limit``. ``environment`` is now ``target`` and ``path`` was removed from filters param. + - ``publishing/fetchPackage``: packageId is now of type ``number``. + - Updated ``workflow/approve``: Now it receives ``packageId`` as a parameter. + - Updated ``workflow/reject``: Now it receives ``packageId`` as a parameter instead of ``items``. + - Removed ``workflow/publish`` and ``workflow/requestPublish``, replaced by ``publishing/publish`` and ``publishing/publish``. + - Removed ``publishing/cancelPackage`` service, replaced by ``workflow/cancel``. + - Removed ``publishing/start`` and ``publishing/stop`` services, replaced by ``publishing/enable``. + - Removed ``publishing/bulkGoLive``, ``publishing/publishByCommits`` and ``publishing/publishAll`` services, replaced by ``publishing/publish``. + - Removed ``content/fetchWorkflowAffectedItems`` service. Now workflow affected validation is checked against packages using ``workflow/fetchAffectedPackages``. + - Removed ``publishing/clearLock`` service. + - Removed ``cmis`` services. + - Removed ``content/uploadToCMIS`` service. + - Removed ``models/CMIS`` service. + - Renamed ``content/fetchDetailedItem`` to ``fetchContentItem``. + - Renamed ``content/fetchItemsByPath`` to ``fetchContentItems``. + - Removed ``content/fetchSandboxItem``. Replaced by ``fetchContentItem``. + - Removed ``content/fetchDetailedItems``. Replaced by ``fetchContentItems``. + - Removed ``content/changeContentType``. + - Updated ``dashboard/fetchPublishingHistoryPackageItems`` ``packageId`` parameter to be of type ``number``. + - Updated ``dependencies/fetchDependencies`` ``items`` parameter to be of type ``string[]``, renamed variable to ``paths`` + - Updated ``publishing/fetchPackage`` ``packageId`` parameter to be of type ``number``, and added the parameter ``data``. + - Updated ``publishing/fetchPackages`` ``filters`` parameter to be required, and removed the filters object props ``environment`` and ``path``. Added filters object props ``target``, ``approvalStates``, ``submitter``, ``reviewer``, ``isScheduled`` and ``sort``. + - Removed ``sites/fetchLegacySite``. Replaced by ``sites/fetchSite``. + - PublishingItem interface changes: + + - ``approver`` is now ``reviewer``, of type ``Person``. + - ``comment`` is removed, and now there's ``reviewerComment`` and ``submitterComment``. + - ``environment`` is now ``target``. + - ``items`` is now of type ``PublishingItem[]``. + - ``state`` is now ``approvalState``. + - Added ``title``, ``submittedOn``, ``reviewedOn``, ``packageState``, ``reviewer``, ``liveError``, ``stagingError``, ``publishedOn``, ``packageType``, ``commitId``, ``publishedStagingCommitId`` and ``publishedLiveCommitId`` props. + - ``PublishFormData`` interface change: Added ``title`` prop. + - ``ExpiredItem`` interface change: changed ``sandboxItem`` prop to ``contentItem``. + - Removed ``SandboxItem`` and ``DetailedItem`` interfaces, replaced by ``ContentItem``. + - ``DeleteDialogBaseProps`` and ``FetchDeleteDependenciesResponse`` interfaces: Update ``childItems`` and ``dependentItems`` to be of type ``LightItem[]``. + - ``CalculatedPackageResponse`` interface: Update ``hardDependencies``, ``softDependencies`` and ``items`` to be of type ``LightItem[]``. + - ``approvePublish`` and ``rejectPublish`` are no longer item actions in BaseItem's ``availableActionsMap`` property. + - [SiteDashboard/utils] Renamed ``getValidatedSelectionState`` to ``getItemsValidatedSelectionState``. + - [state] + + - ``actions/content``: + - Renamed ``fetchDetailedItem`` action to ``fetchContentItem``. Action string changed from FETCH_DETAILED_ITEM to FETCH_CONTENT_ITEM. + - Renamed ``reloadDetailedItem`` action to ``reloadContentItem``. Action string changed from RELOAD_DETAILED_ITEM to RELOAD_CONTENT_ITEM. + - Renamed ``fetchDetailedItemComplete`` action to ``fetchContentItemComplete``. Action string changed from FETCH_DETAILED_ITEM_COMPLETE to FETCH_CONTENT_ITEM_COMPLETE. + - Renamed ``fetchSandboxItems`` to ``fetchContentItems``. Action string changed from FETCH_SANDBOX_ITEMS to FETCH_CONTENT_ITEMS. + - Renamed ``fetchSandboxItemsComplete`` to ``fetchContentItemsComplete``. Action string changed from FETCH_SANDBOX_ITEMS_COMPLETE to FETCH_CONTENT_ITEMS_COMPLETE. + - Removed ``fetchSandboxItem`` action. Replaced by ``fetchContentItem``. + - Removed ``fetchDetailedItemComplete`` action. Replaced by ``fetchContentItemComplete``. + - Removed ``fetchDetailedItems`` action. Replaced by ``fetchContentItems``. + - Removed ``fetchDetailedItemsComplete`` action. Replaced by ``fetchContentItemsComplete``. + - Removed ``completeDetailedItem`` action. + - ``actions/dialogs``: + + - Updated ``historyDialogUpdate`` action type to ``UPDATE_HISTORY_DIALOG``. + - Removed ``fetchDeleteDependencies``, ``fetchDeleteDependenciesComplete``, ``fetchDeleteDependenciesFailed`` actions. + - Updated ``newContentCreationComplete`` action payload to be ``{ item: LegacyItem; redirectUrl: string }``. + - Updated ``updateEditDialogConfig`` action type to ``UPDATE_EDIT_DIALOG``. + - Updated ``fetchRenameAssetDependants`` action payload to be ``{ path: string; dialogId: string }``. + - Updated ``updateSingleFileUploadDialog`` action payload to be ``Partial`` + - Created ``updateLauncher`` action. + - ``actions/system``: + + - Updated `showEditItemSuccessNotification` action payload to be `{ action: CommonSaveOptions; }`. + - Removed ``workflowEvent``. Replaced by ``workflowEventSubmit``, ``workflowEventDirectPublish``, ``workflowEventApprove``, ``workflowEventReject``, ``workflowEventCancel``. + - ``actions/preview``: + + - ``requestWorkflowCancellationDialog``: Removed ``path``, replaced by ``item``. + - [models/Publishing] + + - ``Package``: Updated id to be of type ``number``. + - ``CurrentFilters``: Removed ``environment``, ``path``, ``state`` and ``page`` properties. Added ``target``, ``states``, ``approvalStates``, ``submitter``, ``reviewer``, ``isScheduled``, ``sort`` and ``offset`` properties. + - ``PublishingStatusCodes``: Removed ``processing``, ``queued``, ``error`` and ``readyWithErrors``. + - ``PublishingStatus``: + + - Removed ``status``, ``lockOwner``, ``lockTTL``, ``publishingTarget``, ``submissionId``, ``numberOfItems``, and ``totalItems``. Added ``currentTask`` property. + - Updated ``state`` property to be of type ``'READY' | 'IN_PROGRESS' | 'COMPLETED'``. + - ``PublishFormData``: Added ``title`` property. + - ``PublishingTarget``: updated ``name`` property to be of type ``'live' | 'staging'``. + - ``PublishingParams``: Removed ``optionalDependencies`` and ``sendEmailNotifications`` properties. Added ``paths``, ``commitIds``, ``requestApproval``, ``publishAll`` and ``title`` properties. + - [models/Site] + + - Removed ``LegacySite`` model. Use ``BackendSite`` model instead. + - [common-api.js] + + - Removed ``CStudioAuthoring.Operations.uploadCMISAsset`` and ``CStudioAuthoring.Operations.openCMISUploadDialog``. + - Removed LegacyVersionDialog and the entire associated ``/studio/diff`` route + - [ItemDisplay/utils] + + - Updated ``getItemPublishingTargetText`` to return a string. It now receives ``formatMessage`` as a parameter. + - Updated ``getItemStateText`` to return a string. It now receives ``formatMessage`` as a parameter. + - Removed ``react-swipeable-views`` packages and replaced it with a new forwardRef ``PluginMediaCarousel`` component. + +^^^^^^^^^ +Bug Fixes +^^^^^^^^^ +* `Fixed issue with dependency extraction failing in Javascript on escaped quotes `__ |br| + +^^^^^^^^^^^^^^^^^^ +Dependency Updates +^^^^^^^^^^^^^^^^^^ +* Noteworthy dependency updates: + + - OpenSearch to version 3.3 + - Groovy to version 5 + - MariaDB to version 11.8 + - MariaDB4j to version 3.3 + +For a complete list of community tickets, please visit: `GitHub 5.0.0 `_ + +|hr| + + diff --git a/source/release-notes/5-x-breaking-changes.rst b/source/release-notes/5-x-breaking-changes.rst new file mode 100644 index 000000000..ce003c3a5 --- /dev/null +++ b/source/release-notes/5-x-breaking-changes.rst @@ -0,0 +1,201 @@ +:is-up-to-date: True +:last-updated: 5.0.0 +:orphan: + +.. _breaking-changes-5-x: + +================================ +Breaking Changes in CrafterCMS 5 +================================ +This section covers changes that might affect your CrafterCMS projects, as well as other considerations +before upgrading. Please review the following and apply changes as required: + +|hr| + +.. _breaking-changes-in-craftercms-5-0-0: + +------------------------------------ +Breaking Changes in CrafterCMS 5.0.0 +------------------------------------ +- The Spring profile ``crafter_studio_externalDb`` has been removed in CrafterCMS version 5.0.0. + +- The following APIs are removed from CrafterCMS 5.0.0: + + - /api/1/services/api/1/site/delete-site.json + - /api/1/services/api/1/site/get-canned-message.json + - /api/1/services/api/1/content/change-content-type.json + - /api/1/services/api/1/content/get-item-versions.json + - /api/1/services/api/1/content/write-content.json + - /api/1/services/api/1/publish/commits.json + - /api/1/services/api/1/publish/start.json + - /api/1/services/api/1/publish/stop.json + - /api/1/services/api/1/publish/publish-items.json + - /api/1/services/api/1/server/get-available-languages.json + - /api/2/content/children_by_path + - /api/2/publish/all + - /api/2/publish/history + - /api/2/publish/packages + - /api/2/publish/package + - /api/2/publish/cancel + - /api/2/publish/status + - /api/2/dashboard/content/pending_approval + - /api/2/dashboard/content/pending_approval/{id} + - /api/2/dashboard/publishing/scheduled + - /api/2/dashboard/publishing/scheduled/{id} + - /api/2/dashboard/publishing/history + - /api/2/dashboard/publishing/history/{id} + - /api/2/workflow/affected_paths + - /api/2/workflow/request_publish + - /api/2/workflow/publish + - /api/2/workflow/approve + - /api/2/workflow/reject + - /api/2/workflow/packages + - /api/2/workflow/packages/{id} + - /api/2/workflow/packages/approve + - /api/2/workflow/packages/reject + - /api/1/services/api/1/deployment/bulk-golive.json + - /api/1/services/api/1/preview/sync-site.json + - /api/2/dependency/dependent_items + +- Publishing blacklist configuration has been changed. |br| + From a regex: + + .. code-block:: yaml + :caption: *Old property for the publishing blacklist* + + studio.configuration.publishing.blacklist.regex: >- + .*/\.keep + + To a git `pathspec `__ + that is empty by default because ``.keep`` files are always excluded: + + .. code-block:: yaml + :caption: *New property for the publishing blacklist* + :emphasize-lines: 1 + + studio.configuration.publishing.blacklist.pathspecs: "" + + See :ref:`publishing-blacklist` for more information. + +- Content type controllers now use the new content lifecycle API |br| + When upgrading to CrafterCMS version 5.0.0, the Upgrade Manager will compare ``controller.groovy`` to the + default script from built-in blueprints. If they match, the script will be deleted. + + If they don't match, the entire file will be commented out and a ``logger.error`` statement will be added so admins + can manually check and fix as required. Below is an example of a commented out controller script after upgrading to + version 5.0. Notice the ``logger.error`` statement added: + + .. code-block:: groovy + :caption: *Example controller script commented out when upgrading* + :emphasize-lines: 37 + + /* + WARNING: This controller script was not updated automatically. + Please review and update it manually to ensure compatibility with the new version of Crafter Studio. + Original content commented out below + */ + ///* + // * Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved. + // * + // * This program is free software: you can redistribute it and/or modify + // * it under the terms of the GNU General Public License version 3 as published by + // * the Free Software Foundation. + // * + // * This program is distributed in the hope that it will be useful, + // * but WITHOUT ANY WARRANTY; without even the implied warranty of + // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // * GNU General Public License for more details. + // * + // * You should have received a copy of the GNU General Public License + // * along with this program. If not, see . + // */ + // + //import scripts.libs.CommonLifecycleApi + // + //def contentLifecycleParams =[:] + //contentLifecycleParams.site = site + //contentLifecycleParams.path = path + //contentLifecycleParams.user = user + //contentLifecycleParams.contentType = contentType + //contentLifecycleParams.contentLifecycleOperation = contentLifecycleOperation + //contentLifecycleParams.contentLoader = contentLoader + //contentLifecycleParams.applicationContext = applicationContext + // + //def controller = new CommonLifecycleApi(contentLifecycleParams) + //controller.execute() + // + //System.out.println("Server side content lifecycle event : " + contentLifecycleOperation) + logger.error('This controller is disabled. Please review and upgrade to use the 5.0 content lifecycle API') + + | + + Here's the output of the controller script above after the upgrade: + + .. code-block:: text + :caption: *Controller script logger output when running the commented out controller script after an upgrade* + + [ERROR] 2025-10-16T16:15:24,277 [http-nio-8080-exec-5] [Lifecycle-edd-/page/article] | This controller is disabled. Please review and upgrade to use the 5.0 content lifecycle API + + | + + Please see :ref:`server-side-form-controllers` and :ref:`content-processors-configuration` for more information on + content type controller scripts and content processors configuration. + +- The following permissions are removed from CrafterCMS 5.0.0: + + - **cancel_publish**: replaced by **publish_cancel** for name consistency + - **get_publishing_queue**: replaced by **publish_get_queue** for name consistency + - **publish**: use the new **publish_approve** and **publish_request** + - **publish_by_commits**: use the new **publish_approve** and **publish_request** + - **publish_clear_lock**: removed + + See :ref:`permission-mappings` for more information on permissions for version 5.0.0 + +- The deprecated Engine REST API Get Descriptor ``/api/1/site/content_store/descriptor`` code is now removed in version 5.0.0 |br| + To get the content of an item, please use the :base_url:`Get item <_static/api/engine.html#tag/content/operation/getItem>` API. + + Here's an example of getting the content of the home page of a site created using the empty blueprint named ``hello``, + where the ``url`` for the home page is ``/site/website/index.xml``: + + .. code-block:: text + + GET http://localhost:8080/api/1/site/content_store/item.json?url=/site/website/index.xml&crafterSite=hello + + | + + Here's the output with the content of the page highlighted: + + .. code-block:: json + :caption: *Get Item API output* + :emphasize-lines: 6-24 + + { + "name": "index.xml", + "url": "/site/website/index.xml", + "descriptorUrl": "/site/website/index.xml", + "descriptorDom": { + "page": { + "content-type": "/page/entry", + "display-template": "/templates/web/entry.ftl", + "merge-strategy": "inherit-levels", + "objectGroupId": "8d7f", + "objectId": "8d7f21fa-5e09-00aa-8340-853b7db302da", + "file-name": "index.xml", + "folder-name": null, + "createdDate": "2024-01-31T16:18:14.000Z", + "createdDate_dt": "2024-01-31T16:18:14.000Z", + "lastModifiedDate": "2025-10-17T12:20:30.440Z", + "lastModifiedDate_dt": "2025-10-17T12:20:30.440Z", + "placeInNav": "false", + "internal-name": "Home", + "orderDefault_f": "-1", + "body_html": "\u003Ch1\u003EWelcome to Your CrafterCMS Project Yo.\u003C/h1\u003E\u003Cp\u003EEdit from API. This project blueprint is the equivalent of a Hello World. It's a blank slate on which you can build your own digital experience.\u003C/p\u003E\u003Cul\u003E\u003Cli\u003ETo create new content types use the Project Tools > Content Types menu on the left Sidebar\u003C/li\u003E\u003Cli\u003ETo update markup, edit this template by clicking on the Options menu on the top toolbar and select \"Edit Template\"\u003C/li\u003E\u003Cli\u003ETo modify this text, hover/click on it or use the options menu and select \"Edit\" on the top toolbar\u003C/li\u003E\u003Cli\u003ECrafter documentation can be found \u003Ca href=\"https://craftercms.com/docs\" target=\"_blank\" rel=\"noopener\"\u003Ehere\u003C/a\u003E\u003C/li\u003E\u003Cli\u003ECrafterCMS authoring and developer training is available. Please contact \u003Ca href=\"mailto:info@craftercms.com\"\u003Einfo@craftercms.com\u003C/a\u003E\u003C/li\u003E\u003C/ul\u003E\u003Cdiv\u003E\u003Cp\u003EThis content is managed by the form.  Click edit to change OR in the upper right hand corner, click the pencil to turn on edit mode.\u003C/p\u003E\u003Cp\u003EEdit from API.\u003C/p\u003E\u003C/div\u003E", + "title_t": "Hello!", + "disabled": "false" + } + }, + "properties": null, + "folder": false + } + +|hr| diff --git a/source/release-notes/index.rst b/source/release-notes/index.rst index f40019e8f..526832b8b 100644 --- a/source/release-notes/index.rst +++ b/source/release-notes/index.rst @@ -1,34 +1,24 @@ :is-up-to-date: True -:last-updated: 4.5.0 +:last-updated: 5.0.0 .. _release-notes: ============= Release Notes ============= -This section contains release notes for CrafterCMS version 4. For other version release notes, please visit your -version release's release notes page :ref:`below ` +This section contains release notes for CrafterCMS 5. For other release notes, please visit your +release's release notes page :ref:`below ` .. note:: CrafterCMS requires Java 21 -.. include:: /release-notes/4-5-0.rst -.. include:: /release-notes/4-4-8e.rst -.. include:: /release-notes/4-4-7e.rst -.. include:: /release-notes/4-4-6e.rst -.. include:: /release-notes/4-4-5e.rst -.. include:: /release-notes/4-4-4.rst -.. include:: /release-notes/4-4-3.rst -.. include:: /release-notes/4-4-2.rst -.. include:: /release-notes/4-4-1.rst -.. include:: /release-notes/4-4-0.rst -.. include:: /release-notes/4-3-2.rst -.. include:: /release-notes/4-3-1.rst -.. include:: /release-notes/4-3-0.rst -.. include:: /release-notes/4-2-2.rst -.. include:: /release-notes/4-2-0.rst +.. include:: /release-notes/5-0-0.rst .. _other-release-notes: +For CrafterCMS version 4.2 and later release notes, see :docs_base_url:`4 Release Notes <4/release-notes/index.html>`. + +|hr| + For CrafterCMS version 4.1 release notes, see :docs_base_url:`4.1 Release Notes <4.1/release-notes/index.html>`. |hr| @@ -37,5 +27,4 @@ For CrafterCMS version 4.0 release notes, see :docs_base_url:`4.0 Release Notes |hr| -For CrafterCMS version 3.1 release notes, see :docs_base_url:`3.1 Release Notes <3.1/release-notes/index.html>`. diff --git a/source/support.rst b/source/support.rst index 7b67fe91a..d482cdd84 100644 --- a/source/support.rst +++ b/source/support.rst @@ -1,5 +1,5 @@ :is-up-to-date: True -:last-updated: 4.5.0 +:last-updated: 5.0.0 .. index:: Support @@ -21,6 +21,11 @@ What's Supported? - Commercial Support - Latest + * - `5.0 `__ + - TBD + - :green:`Active` + - :green:`Active` + - 5.0.0 (TBD) * - `4.5 `__ - January 23, 2026 - :green:`Active` @@ -51,16 +56,6 @@ What's Supported? - :maroon:`Ended on June 17, 2023` - :maroon:`Ended on August 31, 2024` - 4.0.7 (July 17, 2023) - * - 3.1 - - May 1, 2019 - - :maroon:`Ended on May 12, 2022` - - :maroon:`Ended on June 30, 2024` - - 3.1.31 (September 19, 2023) - * - 3.0 - - August 1, 2017 - - :maroon:`Ended on May 1, 2019` - - :maroon:`Ended on April 30, 2021` - - 3.0.27 (June 12, 2020) ----------------- Community Support