# Chef Server 12.15.0 released!

**URL:** <https://discourse.chef.io/t/chef-server-12-15-0-released/10851>\
**Category:** Chef Release Announcements\
**Created:** [April 28, 2017, 9:00pm UTC](https://discourse.chef.io/t/chef-server-12-15-0-released/10851 "2017-04-28T21:00:20Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mark\_Anderson1](https://avatars.discourse-cdn.com/v4/letter/m/838e76/32.png) [@Mark\_Anderson1](https://discourse.chef.io/u/Mark_Anderson1)\
**Post date:** [April 28, 2017, 9:00pm UTC](https://discourse.chef.io/t/chef-server-12-15-0-released/10851/1 "2017-04-28T21:00:20Z")

</div>

Ohai Chefs!

We’re excited to announce the release Chef Server 12.15. Full release  
notes [1] and changelog [2] are available as usual. The package is now  
available for download from the Chef Downloads page [3].

## Release Highlights

### Server Enforced recipes

Add required\_recipe endpoint as described in Chef RFC 89 [4]

This adds the ability to serve a required recipe file to chef-clients.

### ACLs and groups

The server-admins group is useful, but it breaks roundtripping when it  
appears in an organizations ACLs and groups. This was particularly  
painful when using the API for backups.

We add a new syntax for referring to global objects from org local  
context. ORGNAME::name and for global objects ::name. This can, and is  
omitted whereever the context is clear. So if the server-admins  
appears in an organizations ACL, you will see the name ::server-admins  
to disambiguate it.

### User customization of LDAP field mapping

Attributes from a user’s LDAP record are used during account-linking  
to populate the erchef user record when it is created. Previously, the  
mapping between LDAP attributes and chef user attributes were  
fixed. Now, they are configurable.

For example, if the user’s LDAP record stores their email address in a  
field named ‘address’ instead of ‘mail’, then you could set the  
following in private-chef.rb:

ldap[‘email\_attribute’] = “address”

## Upgrade Notes

Follow the normal upgrade instructions for your Chef server topology.

[1] [https://github.com/chef/chef-server/blob/12.15.0/RELEASE\_NOTES.md](https://github.com/chef/chef-server/blob/12.15.0/RELEASE_NOTES.md)  
[2] [https://github.com/chef/chef-server/blob/12.15.0/CHANGELOG.md](https://github.com/chef/chef-server/blob/12.15.0/CHANGELOG.md)  
[3] [https://downloads.chef.io/chef-server/stable/12.15.0](https://downloads.chef.io/chef-server/stable/12.15.0)  
[4] [https://github.com/chef/chef-rfc/blob/master/rfc089-server-enforced-recipe.md](https://github.com/chef/chef-rfc/blob/master/rfc089-server-enforced-recipe.md)

---

<div class="post-metadata">

**Author:** ![ssd](https://avatars.discourse-cdn.com/v4/letter/s/7993a0/32.png) [@ssd](https://discourse.chef.io/u/ssd)\
**Post date:** [May 1, 2017, 11:53pm UTC](https://discourse.chef.io/t/chef-server-12-15-0-released/10851/2 "2017-05-01T23:53:24Z")

</div>

Hi,

Chef Server 12.15.0 has a bug that affects upgrades for users of the sql-based cookbook storage (Chef Server HA users and others). Previously, the storage type could be specified as a string or a symbol in `/etc/opscode/chef-server.rb`:

```auto
bookshelf['storage_type'] = :sql

```

However, 12.15.0 only accepts a string and will issue an error during `chef-server-ctl reconfigure` if a symbol is used. Users can work around this issue by changing their configuration to use a string:

```auto
bookshelf['storage_type'] = 'sql'

```

This bug will be fixed in the next version of Chef Server. Apologies for any problems this may have caused you.

Sincerely,

Steven Danna
