# US 10,768,926 B2 · Maintaining manageability state information distinct from managed metadata

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,768,926 B2
- Document ID: US10768926B2
- Status: Granted
- Kind: B2
- Application number: 15/411,598
- Filed: 2017-01-20
- Published: 2018-07-26
- Granted: 2020-09-08
- Earliest claimed: 2017-01-20
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Reid A. Elliott; Jeffrey M. Bartolotta; James B. Wunderlich; Peter Wisnovsky
- Web page: https://patentgrep.com/patent/US10768926B2

## CPC

- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F 21/629: {to features or functions of an application}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are disclosed relating to database techniques for storing metadata for web applications. In some embodiments, manageable state information indicates whether certain entities (e.g., developers or subscribers) are allowed to edit particular fields (e.g., upon installing a version of an application package or when updating a package to a new version). In some embodiments, the manageable state information is stored separately from the corresponding metadata, which may avoid a need to query the metadata to determine manageable state and may allow validation of manageable state rules upon insertion of metadata into a new organization. In some embodiments, a short-lived build organization may facilitate validation of updates to web application packages.

## Claims

### Claim 1

A method, comprising:
storing, by a computing system, metadata for one or more applications in one or more database tables of a multi-tenant database system, wherein the metadata includes one or more custom database table definitions that specify sets of fields included in one or more custom database tables, wherein the fields include one or more tenant-specified custom fields that are not included in a standard database table definition used by one or more other tenants of the multi-tenant database system;
storing, by the computing system in a separate database table from the metadata, manageable state information that specifies permissions for one or more entities to edit the metadata to alter the set of fields included in one of the custom database table definitions; and
generating, by the computing system, information indicating whether an update to at least one of the one or more applications violates a permission specified by the manageable state information by accessing the manageable state information and without accessing the metadata.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
inserting the manageable state information into an application package prior to inserting the metadata into the application package and
using the manageable state information to enforce one or more rules on insertion of the metadata into the application package.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more custom database table definitions further include one or more custom indexing columns that are not included in the standard database table definition and wherein the computing system stores data for both the one or more custom database table definitions and the standard database table definition using the same multi-tenant data structure.

### Claim 4 (depends on 2)

The method of claim 2, wherein the application package is a new package version that includes one or more changes to a previous package version, wherein the one or more rules are used to determine whether the one or more changes are allowed.

### Claim 5 (depends on 4)

The method of claim 4, further comprising generating updated manageable state for the new package version and separately storing the updated manageable state.

### Claim 6 (depends on 1)

The method of claim 1, wherein the manageable state information specifies that at least one field is unmanaged, at least one field that is managed and can be deleted, and at least one field that is managed and cannot be deleted.

### Claim 7 (depends on 1)

The method of claim 1, wherein the manageable state information specifies that at least one field is immutable and cannot be altered by anyone.

### Claim 8 (depends on 1)

The method of claim 1, wherein the manageable state information specifies, for each field of the metadata, whether the field is immutable, unmanaged, or managed.

### Claim 9

A non-transitory computer-readable medium having computer instructions stored thereon that are capable of being executed by a computer system to cause operations comprising:
storing metadata for one or more applications in one or more database tables of a multi-tenant database system, wherein the metadata includes one or more custom database table definitions that specify sets of fields included in one or more custom database tables, wherein the fields include one or more tenant-specified custom fields that are not included in a standard database table definition used by one or more other tenants of the multi-tenant database system;
storing, in a separate database table from the metadata, manageable state information that specifies permissions for one or more entities to edit the metadata to alter the set of fields included in one of the custom database table definitions; and
generating information indicating whether an update to at least one of the one or more applications violates a permission specified by the manageable state information by accessing the manageable state information and without accessing the metadata.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the operations further comprise:
inserting the manageable state information into an organization prior to inserting the metadata into the organization; and
using the manageable state information to enforce one or more rules on insertion of the metadata into the organization.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the operations further comprise setting up a short-lived build organization, wherein an application package that includes the one or more applications is validated in the short-lived build organization.

### Claim 12 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein an application package that includes the one or more applications is a new package version that includes one or more changes to a previous package version, wherein the one or more rules are used to determine whether the one or more changes are allowed.

### Claim 13 (depends on 12)

The non-transitory computer-readable medium of claim 12, wherein the operations further comprise generating updated manageable state information for the new package version and storing the updated manageable state information separately from metadata for the new package version.

### Claim 14 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the manageable state information specifies, for each field of the metadata, whether the field is immutable, unmanaged, or managed.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the manageable state information specifies, for ones of managed fields, at least one entity allowed to update the field.

### Claim 16

A system, comprising:
one or more processing elements; and
one or more storage elements having computer instructions stored thereon that are executable by the one or more processing elements to cause operations comprising;
storing metadata for one or more applications in one or more database tables of a multi-tenant database system, wherein the metadata includes one or more custom database table definitions that specify sets of fields included in one or more custom database tables, wherein the fields include one or more tenant-specified custom fields that are not included in a standard database table definition used by one or more other tenants of the multi-tenant database system;
storing, in a separate database table from the metadata, manageable state information that specifies permissions for one or more entities to edit the metadata to alter the set of fields included in one of the custom database table definitions; and
generating information indicating whether an update to at least one of the one or more applications violates a permission specified by the manageable state information by accessing the manageable state information and without accessing the metadata.

### Claim 17 (depends on 16)

The system of claim 16, wherein the operations further comprise:
inserting the manageable state information into an organization prior to inserting the metadata into the organization; and
using the manageable state information to enforce one or more rules on insertion of the metadata into the organization.

### Claim 18 (depends on 17)

The system of claim 17, wherein the operations further comprise setting up a short-lived build organization, wherein an application package that includes the one or more applications is validated n the short-lived build organization.

### Claim 19 (depends on 17)

The system of claim 17, wherein an application package that includes the one or more applications is a new package version that includes one or more changes to a previous package version, wherein the one or more rules are used to determine whether the one or more changes are allowed.

### Claim 20 (depends on 19)

The system of claim 19, wherein the operations further comprise generating updated manageable state information for the new package version and storing the updated manageable state information separately from metadata for the new package version.
