Page MenuHomePhabricator

Determine which types are allowed to be created as top level objects
Closed, ResolvedPublic

Description

Instances of some types do not make sense to be created as top level objects.

For example, it makes sense to add a new Z8/Function. It does not make sense to add a new Z3/Key or a new Zxx/Boolean.

It can make sense to limit some types, such as Zxx/Language or Z6/String as top level objects to a specific user right.

The community should be able to decide which types are allowed and which are blocked.

Maybe the creation of a type itself should be a specific user right too, similar to the creation of properties in Wikidata. Maybe a community process for new types makes sense, so we don't end up with two dozen integer types without planning.

So the standard right for a contributor should be to create instances of the 'normal' types at any time, whereas some types might be associated with further rights.

This task is about designing a solution for this, and then create tasks about the implementation.

Event Timeline

Jdforrester-WMF renamed this task from How to manage which types are allowed to be created as top level objects to Determine which types are allowed to be created as top level objects.Sep 3 2021, 7:27 PM
Jdforrester-WMF assigned this task to DVrandecic.
Jdforrester-WMF subscribed.

Our current list is encoded in DISALLOWED_ROOT_ZOBJECTS and is: Z2/Persistent ZObject, Z3/ZKey, Z9/ZReference, Z17/ZArgument declaration, Z18/ZArgument reference, Z39/ZKey reference, Z5/ZError, Z16/ZCode.

Let's call this Resolved.