---
title: "Exporting Roles and Permissions Using Features · Appnovation"
url: "https://www.appnovation.com/insights/exporting-roles-and-permissions-using-features"
description: "How to export Drupal roles and permissions with the Features module so configuration moves through version control like code."
---

Article

# Exporting Roles and Permissions Using Features

[![](https://cdn.sanity.io/images/ey850001/production/f0e6f26b2d1cd656f2bc33b49d25cf5cb8d44e93-68x68.png?w=68&auto=format) rllabore rllabore Developer](/people/rllabore-rllabore.md) Feb 25, 2011  
 3 min read 

![Appnovation Blog Default Header](https://cdn.sanity.io/images/ey850001/production/9efe1c26d9584ecfb3dfef5a63e698bf4567d305-1440x600.jpg?w=1400&auto=format) 

When working on a project, we use SVN to keep track of code changes among developers and themers. When I make a change in file A, someone could just update their code checkout and they will have the same code as I have. SVN makes it a lot easier for people to synchronize their code and makes sure that everyone is on the same page. However, code changes are not the only thing that we have to worry about when developing a Drupal website. What about database changes? What would be the simplest way to keep track of database changes, such as settings of a module?

Write an update script. Update scripts allow you to keep track of database changes by piggy backing of off SVN (or other version control software). When you make a database change, write a script and commit it. All your team members have to do is update their code checkout and run the script. This way, the changes that you have made on your local machine will essentially be carried over the next. However, writing an update script is very cumbersome. Imagine if you have a site that has at least 4 roles on top of Drupal's default and permissions that need to be configured. As the site development progresses and more contributed modules get installed, the more update scripts you have to write in order to configure Drupal's roles and permissions.

Do not fret because the Features module is here to save us. Features allows us to export Drupal roles and permissions and package it as a module that we can just install. It makes our custom roles and permissions a “feature” of the site that we are working on. This eliminates the writing of redundant scripts just to propagate user permission configuration during the development life cycle. All you have to do is write one script that would enable this module and you are all set. You can just re-export the permissions and commit the changes to the code repository to propagate further changes. Isn't that cool?

Here are the steps to take in order to export your user roles and permissions:

1 .Navigate to admin/build/features

2\. Click Create feature tab

3\. Enter the feature/module name and description. Version and URL of update XML is optional.

4\. Select Roles under Edit components drop down box

5\. Select the roles that you want to export.

6\. Again under Edit components drop down box, select Permissions

7\. Select the permissions you want to export

8\. Click Download feature

After this, just write an update script that would install features module that you just exported and you are good to go.

[![](https://cdn.sanity.io/images/ey850001/production/f0e6f26b2d1cd656f2bc33b49d25cf5cb8d44e93-68x68.png?w=68&auto=format) rllabore rllabore Developer · Appnovation](/people/rllabore-rllabore.md) 

## Keep reading

[![What is Sovereign AI](https://cdn.sanity.io/images/ey850001/production/a5889abdd5e80376912546622e046e3fbef234b4-2496x1664.png?w=640&auto=format)](/insights/what-is-open-source-sovereign-ai.md)

 Article · 7 min AI 

### [What Is Open Source, Sovereign AI?](/insights/what-is-open-source-sovereign-ai.md)

Every company is encouraging more AI, and almost every AI bill is climbing. Sovereign AI is about two kinds of control: over your data and over your costs. Here's why open source sits at its foundation.

[Iain MacNeil](/people/iain-macneil.md) Article 

[![AI-first experience design](https://cdn.sanity.io/images/ey850001/production/8bbc2418e87924ef10f36115478a2e10d5bed95e-1584x624.jpg?w=640&auto=format)](/insights/how-build-ai-first-experience-without-throwing-out-everything-youve-already-built.md)

 Article · 6 min AI Sep 10, 2026 

### [How to Build an AI-First Experience Without Throwing Out Everything You've Already Built](/insights/how-build-ai-first-experience-without-throwing-out-everything-youve-already-built.md)

Users now expect a direct answer, not a list of links to click through. Here's how organizations can layer an AI-First experience onto their existing website or app, in weeks rather than years.

[Andrew Douglas](/people/andrew-douglas.md) Article 

[![What Becomes Possible When AI Can Read All the Data](https://cdn.sanity.io/images/ey850001/production/c28ab0bd26753421ee42937e13adc7a7f19b47f0-1296x510.jpg?w=640&auto=format)](/insights/what-becomes-possible-when-ai-can-read-all-data.md)

 Article · 4 min AI Sep 09, 2026 

### [What Becomes Possible When AI Can Read All the Data](/insights/what-becomes-possible-when-ai-can-read-all-data.md)

Most of the world's data has never been analyzed, only sampled. AI changes that. How AI-ready data platforms unlock questions no one could ask before.

[Appnovation](/people/appnovation.md) Article 

## Get the thinking,  
*before everyone else.*

One considered email a month. New essays, field notes from live engagements, and the occasional strong opinion. No noise.
