{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":32269,"path":"it-service-management/devops-family/cdm-component-libraries.md","title":"Sharing components among applications — Component libraries","bundle":null,"doc_type":null,"release":"australia","body":"\n# Sharing components among applications — Component libraries\n\nSome applications may share the same basic structure and require nearly identical configuration data. Shared components in CDM enables you to use a component across several applications. For better organization, these shared components are managed in component libraries.\n\n**Important:** Starting with the Washington D.C. release, DevOps Config is being prepared for future deprecation. It will be hidden and no longer activated on new instances but will continue to be supported.\n\n## Component libraries\n\nComponent libraries improve consistency and maintainability by ensuring a single source of truth for a component's config data across applications. You can use the unified view in the DevOps Config workspace or [CdmSharedLibraryApi](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/api-reference/shared_libraries-api.md) REST API to create and maintain these libraries.\n\nIn this example, an organization sells tea on its website. Both the **Shopping-Cart** and **Browsing-Pane** application services make use of config data for product prices and photo appearance. To ensure that the config data is identical in both DevOps applications, each application uses shared components from the **Tea-Service** component library. The components are managed in the library and the applications each use two of the components from the library.\n\n\\[Omitted image \"cdm-comp-library-overview.png\"\\] Alt text: Two applications use shared components from a component library\n\n## Working with shared components\n\n-   A user with the sn\\_cdm.cdm\\_admin role can create and manage a component library and create, add, and delete shared components in the library.\n-   While working in an application changeset, you can add, update, or remove a shared component.\n-   Applications can use any mix of components: components that are defined in the application \\(direct components\\) and components from a component library.\n-   While working in an application changeset, you cannot modify a shared component in the same way as you can modify a direct component. A collection in an application can, however, override any value in a shared component.\n-   For a shared component to be available for use in applications, the component must be in the **Published** state and the library that holds the component must be in the **Available** state.\n\n    In the example, no application can use the **Flavor-Sort-settings** component because it has not been published.\n\n\n"}}