Steemit API
Additional docs may be found here:
Feature flags allows our apps (condenser mainly) to hide certain features behind flags.
Flags can be set individually for users or probabilistically to roll out a feature incrementally, for example set_flag_probability orange_theme 0.5
will enable the flag for ~50% of our users. Changing the flag probability does not re-randomize the user selection so that a user that had their flag enabled at 0.5 will still have it enabled when going to 0.75. This is achieved by seeding a PRNG with the shasum of username+flag.
Flags set individually per user always takes precedence.
Get feature flags object for the username <account>
.
Authenticated: requires signature of <account>
or an admin account.
Returns: Key value mapping of feature flags, missing flags should be treated as false
by the client.
{
horse_hockey_minigame_unlocked: true,
donovan_theme: false
}
Get specific <flag>
for the username <account>
.
Authenticated: requires signature of or an admin account.
Returns: false/true
Set a <flag>
override for the username <account>
.
Authenticated: requires signature of an admin account.
Set the <probability>
expressed as a fraction 0.0
to 1.0
that a <flag>
will resolve to true.
Authenticated: requires signature of an admin account.
Get all the set flag probabilities.
Authenticated: requires signature of an admin account.
{
horse_hockey_minigame_unlocked: 1.0,
donovan_theme: 0.5,
lucky_af: 0.0001
}
Conveyor is the central point for storing sensitive user data (email, phone, etc). No other services should store this data and should instead query for it here every time.
Return user data for <account>
, returns an error if the account is not found.
Authenticated: requires signature of an admin account or the requested user.
{
phone: '+1480080085',
email: 'foo@bar.com'
}
Set user data for <account>
.
Authenticated: requires signature of an admin account.
<data>
is an object with the keys email
and phone
.
Check if the <email>
address is in the database.
Authenticated: requires signature of an admin account.
Returns true
or false
Check if the <phone>
number is in the database.
Authenticated: requires signature of an admin account.
Returns true
or false
Tagging mechanism for other services, allows defining and assigning tags to accounts (or other identifiers) and querying for them.
Define a new tag, valid tag names include only alphanumeric characters and underscore (_
), description is required.
Authenticated: requires signature of an admin account.
List all defined tags.
Authenticated: requires signature of an admin account.
[ { name: 'make_site_unbearable', description: 'Slows down the site for user by adding a sleep(5) to every request.' },
{ name: 'accepted_tos', description: 'User has accepted the terms of service' } ]
Assign <tag>
to user, throws if tag is not defined.
Note that this is a no-op if user already has the tag.
Authenticated: requires signature of an admin account.
Remove <tag>
from user.
Note that this is a no-op if user already has the tag.
Authenticated: requires signature of an admin account.
Get a list of users that has <tags>
assigned, <tags>
can be either
a string or an array of strings in which case the user must have all the tags given
to be included in the response.
Authenticated: requires signature of an admin account.
[ 'some_user', 'another_user' ]
Get a list of tags assigned to <uid>
.
[ 'some_tag', 'another_tag' ]
Authenticated: requires signature of an admin account.