Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
a486fcd
Start release notes for 5.0.0
alhambrav Mar 6, 2025
f8e8510
Merge with master
alhambrav May 22, 2025
630440c
Update release notes for ticket #7704
alhambrav May 23, 2025
7093e4b
Add improvements to notifications #7557
alhambrav May 30, 2025
f55324a
Merge branch 'master' into rn-5-0-0
alhambrav Jun 16, 2025
377c13c
Update link to breaking changes from server upgrade
alhambrav Jun 16, 2025
ae6f515
Merge branch 'master' into rn-5-0-0
Aug 22, 2025
8a4a054
Updates
Sep 2, 2025
3559055
Merge branch 'master' into rn-5-0-0
Sep 4, 2025
42ea360
Some more updates
Sep 5, 2025
9eac3bb
Merge with master
Sep 9, 2025
76c14de
Add breaking changes for publishing blacklist config and removed APIs
Sep 10, 2025
271ab33
Update publishing blacklist configuration
Sep 10, 2025
880fc37
Add list of new v2 APIs
Sep 10, 2025
de16ce9
Update last-updated metadata
Sep 10, 2025
a76504e
Updates based on coderabbit
Sep 11, 2025
a8e0438
Updates based on coderabbit
Sep 11, 2025
3a64d54
Add another API removed in breaking changes
Sep 30, 2025
cb75120
Merge with master
Oct 1, 2025
f3637c3
Add new content processor properties and new controller script to rel…
Oct 21, 2025
b1f8139
Update publish permissions #6766
Oct 28, 2025
ab19ea9
Add to breaking changes removed getDescriptor #8294
Oct 29, 2025
a0f2f21
Merge with master and fix conflicts
Oct 29, 2025
b399ebe
Update upgrading sections #8326
Nov 3, 2025
7d7d705
Fix typos
Nov 3, 2025
c61a167
Fix some spacing and wording
Nov 3, 2025
a45d73d
Merge branch 'master' into rn-5-0-0
Nov 25, 2025
b46c460
Add notes for updated dependencies and breaking changes #8390
Nov 25, 2025
0a7b1e7
Add note that getDescriptor is now removed #8294
Nov 26, 2025
d5d0a03
Update release notes for OpenSearch changes in 4.x
Dec 9, 2025
8af76f0
Merge with master
Jan 14, 2026
c7e4f1c
Update list of removed APIs
Jan 14, 2026
efcb903
Merge with master
alhambrav Feb 25, 2026
df61fd5
Update changelog for Studio UI #8377
alhambrav Feb 25, 2026
271b476
Update studio-ui changelogs
alhambrav Mar 3, 2026
e14d220
Merge branch 'master' into rn-5-0-0
alhambrav Apr 14, 2026
68122b2
Update adding a new language #8599
alhambrav Apr 20, 2026
5b2fd2e
Add to release notes new api for getAvailableLanguages #8599
alhambrav Apr 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 61 additions & 59 deletions source/_static/api/deployer.html

Large diffs are not rendered by default.

34 changes: 15 additions & 19 deletions source/_static/api/engine.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions source/_static/api/profile.html

Large diffs are not rendered by default.

62 changes: 25 additions & 37 deletions source/_static/api/social.html

Large diffs are not rendered by default.

1,358 changes: 485 additions & 873 deletions source/_static/api/studio.html

Large diffs are not rendered by default.

124 changes: 55 additions & 69 deletions source/by-role/developer/common/adding-a-new-language.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
:is-up-to-date: True
:last-updated: 4.1.2
:last-updated: 5.0.0

.. _adding-a-new-language:

Expand All @@ -10,9 +10,9 @@ Crafter Studio has been translated into a number of languages. To reach more use

**Here are the steps to add a new language in Crafter Studio:**

#. Add the new language to the ``get-available-languages`` API
#. In Studio UI, add your new locale files to ui/app/src/translations. You may start by copying ``es.json`` and translating it into your target language.
#. Add the new language to the ``getAvailableLanguages`` API
#. Open the file ``ui/app/src/utils/i18n.ts`` and add the locale code to ``createIntlInstance`` conditional statement, and add the switch statement case to ``fetchLocale``.
#. In Studio UI, add your new locale files to ui/app/src/translations. You may start by copying ``es.json`` and translating it into your target language.
#. Add the translation file/s for legacy forms and content type editor to ``studio-ui/static-assets/components/cstudio-common/resources/**/base.js``
#. Update templates to add the new language imports into the runtime (i.e. via script[src] elements)
#. Build, deploy and test your changes
Expand All @@ -26,62 +26,45 @@ Before we begin, we need to pick the two letter language code for the new langua
Let's begin adding the language ``Japanese`` to Crafter Studio:

----------------------------------------------------------
1. Add the new language to the get-available-languages API
1. Add the new language to the available_languages API
----------------------------------------------------------
* To add the new language to the ``get-available-languages`` API (*/studio/api/1/services/api/1/server/get-available-languages.json*), in your ``studio`` code, navigate to ``studio/src/main/webapp/default-site/scripts/rest/api/1/server`` and open the ``get-available-languages.get.groovy`` file
* Add the new language to the file:
* To add the new language to the :base_url:`getAvailableLanguages <_static/api/studio.html#tag/system/operation/getAvailableLanguages>`, in your Studio configuration override file, ``studio-config-override.yaml``, add the new language:

.. code-block:: groovy
:emphasize-lines: 14-16
.. code-block:: yaml
:caption: *CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/studio/extension/studio-config-override.yaml*
:emphasize-lines: 10-11
:linenos:

def result = []
result[0] = [:]
result[0].id = "en"
result[0].label = "English"
result[1] = [:]
result[1].id = "es"
result[1].label = "español"
result[2] = [:]
result[2].id = "ko"
result[2].label = "한국어"
result[3] = [:]
result[3].id = "de"
result[3].label = "Deutsch"
result[4] = [:]
result[4].id = "ja"
result[4].label = "日本語"
return result
studio.configuration.availableLanguages:
- id: en
label: English
- id: es
label: Español
- id: ko
label: 한국어
- id: de
label: Deutsch
- id: ja
label: 日本語


---------------------------------------------------------
2. Add the New Language to the React Translations Manager
---------------------------------------------------------
Open the file ``ui/app/src/utils/i18n.ts`` and add the locale code to the ``createIntlInstance`` conditional statement, and add the switch statement case to ``fetchLocale``.
In your ``studio-ui`` code, open the file ``ui/app/src/utils/i18n.ts`` and add the locale code to the ``createIntlInstance`` conditional statement, and add the new language ``ja`` to the ``ImportsLookup``.

.. code-block:: ts
:emphasize-lines: 1,13-15,23,28

async function fetchLocale(locale: string): Promise<LookupTable<string>> {
let translations;
switch (locale) {
case 'de':
translations = await import('../translations/de.json');
break;
case 'es':
translations = await import('../translations/es.json');
break;
case 'ko':
translations = await import('../translations/ko.json');
break;
case 'ja':
translations = await import('../translations/ja.json');
break;
default:
translations = Promise.resolve({});
break;
}
return translations;
}
:caption: *studio-ui/ui/app/src/utils/i18n.ts*
:emphasize-lines: 1,5,10,15

const importsLookup: ImportsLookup = {
de: () => import('../translations/de.json'),
es: () => import('../translations/es.json'),
ko: () => import('../translations/ko.json'),
ja: () => import('../translations/ja.json')
};

...

async function createIntlInstance(localeCode: string): Promise<IntlShape> {
localeCode = localeCode.replace('kr', 'ko');
Expand All @@ -93,25 +76,26 @@ Open the file ``ui/app/src/utils/i18n.ts`` and add the locale code to the ``crea
let fetchedTranslations = await fetchLocale(localeCode as BundledLocaleCodes);
...

--------------------------------------------------------
3. Add Your New Locale File/s to ui/app/src/translations
--------------------------------------------------------
------------------------------------------------------------------
3. Add Your New Locale File/s to studio-ui/ui/app/src/translations
------------------------------------------------------------------
In your ``studio-ui`` code, add the new locale files to ``ui/app/src/translations``. You may start by copying ``es.json`` and translating it into your target language.

.. code-block:: json
:force:
:caption: *ui/app/src/translations/ja.json*
:caption: *studio-ui/ui/app/src/translations/ja.json*

{
"+E4CL4": "プロジェクト全体が公開されました",
"/A7dEh": "最後の投稿はエラーで完了しました、詳細についてはログを参照してください。",
...
"about.versionNumber": "バージョン番号",
"aboutView.attribution": "CrafterCMS 他の人のおかげでそれは可能です <a>オープンソースソフトウェアプロジェクト</a>.",
"accountManagement.changeHelperText": "パスワードが正常に更新されると、再度ログインするように求められます.",
"accountManagement.changeLanguage": "言語の変更",
"accountManagement.changePassword": "パスワードを変更する",
...
"+E4CL4": "プロジェクト全体が公開されました",
"+fYahR": "サポートタイプ",
"+vOP15": "コンテンツの名称変更",
...
"about.versionNumber": "バージョン番号",
"aboutView.attribution": "CrafterCMS 他の人のおかげでそれは可能です <a>オープンソースソフトウェアプロジェクト</a>.",
"accountManagement.changeHelperText": "パスワードが正常に更新されると、再度ログインするように求められます.",
"accountManagement.changeLanguage": "言語の変更",
"accountManagement.changePassword": "パスワードを変更する",
...
}

--------------------------------------------------------------------
Expand Down Expand Up @@ -139,7 +123,7 @@ In your ``studio-ui`` code, add the new locale files to ``ui/app/src/translation
<script src="/studio/static-assets/components/cstudio-common/resources/de/base.js"></script>
<script src="/studio/static-assets/components/cstudio-common/resources/ja/base.js"></script>

.. code-block:: html
.. code-block:: html
:force:
:linenos:
:emphasize-lines: 5
Expand All @@ -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
Expand Down
7 changes: 0 additions & 7 deletions source/by-role/developer/upgrade/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand All @@ -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.

--------------------------
Expand Down
147 changes: 3 additions & 144 deletions source/by-role/system-admin/upgrade/index.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
:is-up-to-date: True
:last-updated: 4.5.0
:last-updated: 5.0.0

.. _upgrading-craftercms:

Expand All @@ -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
Expand Down Expand Up @@ -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 <upgrading-craftercms-on-a-server>` 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
------------------------------
Expand Down
Loading