Change Management

Change Management
Change management is a key consideration for building and maintaining systems, to provide both agility and control. This article discusses the following elements:
  • API clients and how they are affected by changes to the other elements.
  • Database/schema changes, such as dropping or renaming columns.
  • Logic changes (reactive logic and security).
  • Schema resources, endpoints that 
    CA Live API Creator
     creates from schema tables, views, and stored procedures when you create your API and connect to a database.
    For more information about schema resources, see Customize your API.
  • Resources that you explicitly define using API Creator, with provisions for join and column selection/alias.
    For more information about how to "shape" your API using resources, see Customize your API.
The following image shows change management in 
CA Live API Creator
In this article:
Database Changes
APIs resolve onto database calls, so can affect clients that use the API. The impact is different for schema resources versus the resources you define explicitly.
Schema Resources Reflect Schema Changes
API clients using schema resources see all schema changes. The addition or a table or column might not affect applications. The deletion or renaming of a referenced object affect applications.
Resources Affected Only by Changes to Referenced Objects
The resources that you define explicitly provide an abstraction layer. These resources shield API clients from schema changes, such as the addition of a table or column or the deletion or the renaming of a referenced object. The resources that you define explicitly are unaffected when an unreferenced object is deleted or renamed.
For more information about how to define resources explicitly in API Creator, see Customize your API.
Verify Project to Identify Schema Change Impacts
Verify your API to determine what resources (and rules) might have been affected by schema changes. If an object was renamed, you can repair the resource by including the column and then aliasing it to the previous name.
For more information:
Best Practice: Communication, Nightly Verify
Ideally, the team making schema changes advises when changes are made. If this is not practical, you can make verifying the API part of your nightly build. This ensures that breakage is detected and can be repaired quickly.
Logic Changes
The following sections describe how business policy changes impact your system, both API consumers and existing logic.
Do not Affect API Consumers
A key architectural goal is to provide strong Separation of Concerns (SoC) between the API interface (the data returned) and its semantics for logic and security. 
CA Live API Creator
 defines logic and security changes on the underlying tables and automatically re-uses these changes over those tables.
For example, when you make updates through the resources that you define explicitly, 
CA Live API Creator
 provides automatic resource/object mapping to create logic-enabled row objects from request objects. So, for example, a resource that you defined on Monday, without changes, enforces additional semantics on Tuesday, such as new validations. In effect, this separation enables the following teams to proceed in parallel:
  • API consumers
  • API creators - explicitly define resources
  • Logic developers - define logic and security
For more information about resource/object mapping, including how to define multiple resources on the same underlying base table, see Logic Execution.
Logic Integration: Automatic Invocation, Ordering
Reactive logic automates watch/react processing. When you add or change rules, 
CA Live API Creator
 automatically invokes the logic and executes it in an order that reflects the dependencies discovered through logic analysis.
For more information:
Versioned API Changes
You can maintain existing interfaces while introducing new ones by versioning the resources that you define explicitly.
For more information about how to version resources, see API Versions.
Resources are Logic-Aware
All resources (unchanged resources, changed resources, resource versions) share the common underlying logic and security. 
CA Live API Creator
 addresses logic changes that occur even after you have created the resources.
Continuous Delivery
Services for Continuous Delivery (CD) can promote Change Management (CM), simplifying the ability to move a system from dev to test to production. The following are the key services:
Hot Deploy
Since API definitions are settings in the Admin database, there is no code generation and no deploy. New rules and resources are operational as soon as they are saved.
Scriptable Deploy
In most cases, you will want to test your system before going into production. While you can perform such a function manually using export/import, in most cases you will want to be certain what is actually deployed (for example, matches your source control) by scripting it for a repeatable process.
API definitions are available through the CA Live API Creator project API. You can script the deployment of an entire system, or just a specific element such as a resource.
For more information about how to script the deployment of an entire system, see the Business to Business Example.
Track API Changes
You can determine what has changed in your API on the Latest changes tab. To view this page, click 
API Properties
Latest changes
 tab. This tab lists the latest changes in your API. By default, 20 records are shown. You can view the current values and the previous (old) values for a specific change by clicking 
Show Details
The following image shows the changes in an API on the Latest changes tab: 
  CA Technologies  
Revert Changes
You can make snapshots and roll back to them.