# Best practice to propagate parameters between dotCMS environments

**URL:** <https://community.dotcms.com/t/best-practice-to-propagate-parameters-between-dotcms-environments/269>\
**Category:** Product Discussions\
**Tags:** developer, developer-workflows\
**Created:** [February 10, 2026, 1:24pm UTC](https://community.dotcms.com/t/best-practice-to-propagate-parameters-between-dotcms-environments/269 "2026-02-10T13:24:58Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![soudin](https://yyz2.discourse-cdn.com/flex012/user_avatar/community.dotcms.com/soudin/32/209_2.png) [@soudin](https://community.dotcms.com/u/soudin)\
**Post date:** [February 10, 2026, 1:24pm UTC](https://community.dotcms.com/t/best-practice-to-propagate-parameters-between-dotcms-environments/269/1 "2026-02-10T13:24:58Z")

</div>

Hi everyone,

I have a question about **parameter porting between dotCMS environments** (dev → staging → prod).

I want to propagate parameter cleanly to another one, what is the recommended approach?

I’ve identified thoses tools :

- **starter.zip** , for new instances

- **backup & restore** , but time consuming and overkill

- **push publish** , but doesn’t cover Role and Workflow

- **dotCLI** , limited to site, language, asset and content-type

- **API and scripting** , time consuming and not very maintainable. I didn’t manage to export my Role and associated permission/layout with the api playground.

My questions are:

- Which approach is considered best practice for environment configuration?

- For now, I didn’t find any acceptable way to propagate Role and Workflow. I there any tools I am missing ?

- Do you recommend going through the whole staging → prod … or directly modifying the prod parameters ?

Thanks in advance for your feedback

---

<div class="post-metadata">

**Author:** ![MarkPitely](https://yyz2.discourse-cdn.com/flex012/user_avatar/community.dotcms.com/markpitely/32/95_2.png) [@MarkPitely](https://community.dotcms.com/u/MarkPitely)\
**Post date:** [February 10, 2026, 2:22pm UTC](https://community.dotcms.com/t/best-practice-to-propagate-parameters-between-dotcms-environments/269/2 "2026-02-10T14:22:36Z")

</div>

Normally I wouldn’t think you’d be moving everything over; most of the content is relatively static, especially if you build with this intent.  
I think Push Publishing would manage it fine most of the time and is reliable. I think this is the overwhelming best practice.  
You didn’t mention Site Copy, which actually works pretty well, but as you note, doesn’t do the Permissions.  
I also tried to use the API to do Roles, but it is quite limited.

I do dev and prod on the same site but with a Velocity content type. ( Each widget code has velocity, js and css in one content type) and a different structure tells the template which version to use. I test it on one test site and then roll it out to all the sites I want to…but all my sites use one location for velocity code (I have one Shared site that has all the shared items - multiple versions of the various widgets).

I built a Chrome Extension to manage my permissions (well, set the exact permissions I want) - you could easily fork or extend this.  
[https://community.dotcms.com/t/permission-settings-via-chrome-extensions/103?u=markpitely](https://community.dotcms.com/t/permission-settings-via-chrome-extensions/103)

M
