User:Adamw/old/RFC - Campaigns entities
RFC - Campaigns entities | |
---|---|
Component | General |
Creation date | |
Author(s) | Adam Roses Wight |
Document status | incomplete |
These improvements to Extension:Campaigns will persist information about campaigns, and provide an API.
Considerations edit
- Not sure if we want to have campaign "owners".
- How to deal with fuzz spam?
- Do we want any kind of namespacing done on campaigns? Seems wise. This could be done in a semi-transparent way by forming a campaign name like "<group-identifier>/<campaign title>" during campaign creation.
Schema changes edit
Campaign table edit
Column | Type | Description |
---|---|---|
id | unsigned int not null, primary key | Autoincrement id |
name | varchar(255) not null, unique key | Campaign name. Cannot be updated. |
welcome_title | varchar(255) default null | Page to show during new account creation. |
created_time | timestamp not null, key | Campaign creation time |
is_private | tinyint not null default 1 | True if campaign membership should be hidden from public view |
Campaign owner table edit
Column | Type | Description |
---|---|---|
id | unsigned int not null | Autoincremented link table row id |
campaign_id | unsigned int not null | FK to campaign.id |
user_id | unsigned int not null | FK to user.user_id |
Campaign member table edit
This table should be designed more carefully so we are future-compatible with obvious, new Campaigns use cases.
Column | Type | Description |
---|---|---|
id | unsigned int not null | Autoincremented link table row id |
campaign_id | unsigned int not null | FK to campaign.id |
user_id | unsigned int not null | FK to user.user_id |
Campaign owners edit
There is currently only one class of campaign owner, and these users are allowed to view all information and make any changes to a campaign.
Interaction with Wikimetrics edit
Wikimetrics will pull cohorts via an API that we'll create, to let users access them from Wikimetrics.
Wikimetrics will need to be extended to support this new usage.
Future enhancements edit
Things which need to happen, but are not covered by this RFC:
- Admin UI: create campaigns, edit properties, assign owners. Allow the community to create social campaigns.
- Campaign link generation
- Campaigns for things other than new account creation (e.g. fundraising, editathons)