10. A system for determining user access to custom metadata, the system comprising: a database system implemented using a server system comprising one or more hardware processors, the database system configurable to cause: processing a request for one of a plurality of custom metadata entities, the request received from a computing device of a first user, the requested custom metadata entity defining a software component of a database environment and having an entity type specifying a class or a category of the software component, the software component configured to be instantiated and customized by a developer; identifying one or more permission sets associated with the requested custom metadata entity, each permission set maintained through a respective permission set object stored in a database and comprising a plurality of permissions, each permission maintained through a respective permission object stored in a database and exposable in a programming interface, each permission indicating accessibility of a software entity in the database environment; identifying one or more user attributes associated with the first user; identifying criteria associated with the first user, the criteria identifying a plurality of required user attributes for the first user to be associated with the one or more permission sets, the criteria comprising two or more of: a geographic location, a level with an organizational hierarchy, a level of experience, a title, an industry or a role; maintaining one or more files identifying assignments of users to the one or more permission sets; determining, using the entity type of the requested custom metadata entity, the one or more permission sets, the criteria, the one or more files, and a first one of a plurality of association records, that the first user has permission to access the requested custom metadata entity, the determining comprising identifying that the one or more user attributes associated with the first user satisfy the required user attributes, the association records maintained in an association database, each association record identifying at least a user and a custom metadata entity; and providing, to the computing device of the first user and responsive to determining that the first user has permission to access the requested custom metadata entity, data identifying the requested custom metadata entity.
11. The system of claim 10 , wherein the database system receives the request for the custom metadata entity through an application programming interface (API).