This task covers:
- Implementing Recommendation #2: Allow Identifiers to be Updated from T408133: [Spike] Explore Generalizing Enrollment Authorities.
AC
- Developers can update an identifier for a given identifier type, e.g. Coordinator::IDENTIFIER_TYPE_MW_USER
- Developers cannot update the identifier for the Coordinator::IDENTIFIER_TYPE_EDGE_UNIQUE identifier type
Example API
PHP
namespace MediaWiki\Extension\MetricsPlatform\TestKitchen; interface Coordinator { const IDENTIFIER_TYPE_EDGE_UNIQUE = 'edge-unique'; const IDENTIFIER_TYPE_MW_USER = 'mw-user'; const IDENTIFIER_TYPE_SEARCH_SESSION = 'search-session'; /** * Updates the identifier. * * When an identifier is updated all experiments that require the * identifier type are enrolled and the `XLab.ExperimentManager` service is * updated with those enrollments. If this is done before the * `BeforePageOutput` hook is run, then the output is decorated with those * enrollments also. * * @throws \DomainException If the identifier type can't be updated, i.e. * it's {@link Coordinator::IDENTIFIER_TYPE_MW_USER} */ public function updateIdentifier( string $identifierType, string $identifier ); }
Open Questions
- Should there be an equivalent method for the JavaScript SDK?