Reference
Classes
BucketClient
BucketClient lets you interact with the Bucket API.
Constructors
new BucketClient()
Create a new BucketClient instance.
Parameters
opts
Returns
Methods
feedback()
Submit user feedback to Bucket. Must include either score
or comment
, or both.
Parameters
payload
Returns
Promise
<undefined
| Response
>
getFeature()
Return a feature. Accessing isEnabled
will automatically send a check
event.
Parameters
key
string
Returns
A feature
getFeatures()
Returns a map of enabled features. Accessing a feature will not send a check event
Returns
Map of features
initialize()
Initialize the Bucket SDK.
Must be called before calling other SDK methods.
Returns
Promise
<void
>
onFeaturesUpdated()
Register a callback to be called when the features are updated. Features are not guaranteed to have actually changed when the callback is called.
Calling client.stop()
will remove all listeners added here.
Parameters
cb
() => void
this will be called when the features are updated.
Returns
Function
Returns
void
requestFeedback()
Display the Bucket feedback form UI programmatically.
This can be used to collect feedback from users in Bucket in cases where Automated Feedback Surveys isn't appropriate.
Parameters
options
Returns
void
sendCheckEvent()
Parameters
checkEvent
Returns
Promise
<boolean
>
stop()
Stop the SDK. This will stop any automated feedback surveys. It will also stop the features client, including removing any onFeaturesUpdated listeners.
Returns
Promise
<void
>
track()
Track an event in Bucket.
Parameters
eventName
string
The name of the event
attributes
?
null
| Record
<string
, any
>
Any attributes you want to attach to the event
Returns
Promise
<undefined
| Response
>
updateCompany()
Update the company context. Performs a shallow merge with the existing company context. Attempting to update the company ID will log a warning and be ignored.
Parameters
company
{}
Returns
Promise
<void
>
updateOtherContext()
Update the company context. Performs a shallow merge with the existing company context. Updates to the company ID will be ignored.
Parameters
otherContext
{}
Returns
Promise
<void
>
updateUser()
Update the user context. Performs a shallow merge with the existing user context. Attempting to update the user ID will log a warning and be ignored.
Parameters
user
{}
Returns
Promise
<void
>
Interfaces
BucketContext
Properties
otherContext?
Record
<string
, undefined
| string
| number
>
Context which is not related to a user or a company
CheckEvent
Event representing checking the feature flag evaluation result
Properties
key
string
Feature key
value
boolean
Result of feature flag evaluation
version?
number
Version of targeting rules
CompanyContext
Context is a set of key-value pairs. Id should always be present so that it can be referenced to an existing company.
Indexable
Properties
id
undefined
| string
| number
Company id
name?
string
Company name
Feature
Properties
isEnabled
boolean
Result of feature flag evaluation
track
() => Promise
<undefined
| Response
>
Function to send analytics events for this feature
FeedbackScoreSubmission
Properties
feedbackId?
string
question
string
score
number
FeedbackSubmission
Properties
comment
string
feedbackId?
string
question
string
score
number
InitOptions
BucketClient initialization options.
Properties
apiBaseUrl?
string
Base URL of Bucket servers. You can override this to use your mocked server.
company?
Company related context. If you provide id
Bucket will enrich the evaluation context with company attributes on Bucket servers.
enableTracking?
boolean
‐
host?
string
Deprecated
Use apiBaseUrl
instead.
logger?
You can provide a logger to see the logs of the network calls. This is undefined by default. For debugging purposes you can just set the browser console to this property:
otherContext?
Record
<string
, any
>
Context not related to users or companies
publishableKey
string
Publishable key for authentication
sdkVersion?
string
Version of the SDK
sseBaseUrl?
string
Base URL of Bucket servers for SSE connections used by AutoFeedback.
sseHost?
string
Deprecated
Use sseBaseUrl
instead.
user?
User related context. If you provide id
Bucket will enrich the evaluation context with user attributes on Bucket servers.
Logger
Methods
debug()
Parameters
message
string
...args
any
[]
Returns
void
error()
Parameters
message
string
...args
any
[]
Returns
void
info()
Parameters
message
string
...args
any
[]
Returns
void
warn()
Parameters
message
string
...args
any
[]
Returns
void
OnScoreSubmitResult
Properties
feedbackId
string
OpenFeedbackFormOptions
Properties
key
string
‐
onClose?
() => void
‐
onDismiss?
() => void
‐
openWithCommentVisible?
boolean
Open the form with both the score and comment fields visible. Defaults to false
title?
string
‐
translations?
Partial
<FeedbackTranslations
>
Add your own custom translations for the feedback form. Undefined translation keys fall back to english defaults.
UserContext
Indexable
Properties
email?
string
User email
id
undefined
| string
| number
User id
name?
string
User name
Type Aliases
FeatureIdentifier
Type declaration
{ featureId
: string
; }
featureId
string
Bucket feature ID.
Deprecated
use feedbackId
instead.
{ featureKey
: string
; }
featureKey
string
Bucket feature key.
FeaturesOptions
Type declaration
expireTimeMs
?
number
‐
fallbackFeatures
?
string
[]
Feature keys for which isEnabled
should fallback to true if SDK fails to fetch features from Bucket servers.
staleTimeMs
?
number
‐
staleWhileRevalidate
?
boolean
If set to true client will return cached value when its stale but refetching
timeoutMs
?
number
Timeout in miliseconds
Feedback
Type declaration
companyId
?
string
Company ID from your own application.
userId
?
string
User ID from your own application.
FeedbackOptions
Type declaration
enableAutoFeedback
?
boolean
Enables automatic feedback prompting if it's set up in Bucket
enableLiveSatisfaction
?
boolean
Deprecated
Use enableAutoFeedback
instead
ui
?
{ position
: FeedbackPosition
; translations
: Partial
<FeedbackTranslations
>; }
With these options you can override the look of the feedback prompt
ui.translations
?
Partial
<FeedbackTranslations
>
Add your own custom translations for the feedback form. Undefined translation keys fall back to english defaults.
FeedbackPlacement
FeedbackPosition
FeedbackPrompt
Type declaration
featureId
string
Feature ID from Bucket
promptId
string
Id of the prompt
question
string
Specific question user was asked
showAfter
Date
Feedback prompt should appear only after this time
showBefore
Date
Feedback prompt will not be shown after this time
FeedbackPromptHandler()
Parameters
prompt
handlers
Returns
void
FeedbackPromptHandlerCallbacks
Type declaration
openFeedbackForm
(options
: FeedbackPromptHandlerOpenFeedbackFormOptions
) => void
FeedbackPromptHandlerOpenFeedbackFormOptions
FeedbackPromptReply
Type declaration
comment
?
string
companyId
?
string
question
string
score
?
number
FeedbackPromptReplyHandler()
Type Parameters
T
extends FeedbackPromptReply
| null
Parameters
reply
T
Returns
T
extends null
? Promise
<void
> : Promise
<{ feedbackId
: string
; }>
FeedbackTranslations
You can use this to override text values in the feedback form with desired language translation
Type declaration
DefaultQuestionLabel
string
QuestionPlaceholder
string
ScoreDissatisfiedLabel
string
ScoreNeutralLabel
string
ScoreSatisfiedLabel
string
ScoreStatusDescription
string
ScoreStatusLoading
string
ScoreStatusReceived
string
ScoreVeryDissatisfiedLabel
string
ScoreVerySatisfiedLabel
string
SendButton
string
SuccessMessage
string
Offset
Type declaration
x
?
string
| number
Offset from the nearest horizontal screen edge after placement is resolved
y
?
string
| number
Offset from the nearest vertical screen edge after placement is resolved
RawFeature
Type declaration
isEnabled
boolean
Result of feature flag evaluation
key
string
Feature key
targetingVersion
?
number
Version of targeting rules
RawFeatures
RequestFeedbackData
Type declaration
companyId
?
string
Company ID from your own application.
onAfterSubmit
?
(data
: FeedbackSubmission
) => void
Allows you to handle a copy of the already submitted feedback.
This can be used for side effects, such as storing a copy of the feedback in your own application or CRM.
RequestFeedbackOptions
Type declaration
userId
string
User ID from your own application.
UnassignedFeedback
Type declaration
comment
?
string
User supplied comment about your feature.
feedbackId
?
string
Bucket feedback ID
promptedQuestion
?
string
The original question. This only needs to be populated if the feedback was submitted through the automated feedback surveys channel.
promptId
?
string
Bucket feedback prompt ID.
This only exists if the feedback was submitted as part of an automated prompt from Bucket.
Used for internal state management of automated feedback.
question
?
string
The question that was presented to the user.
score
?
number
Customer satisfaction score.
source
?
"prompt"
| "sdk"
| "widget"
Source of the feedback, depending on how the user was asked
prompt
- Feedback submitted by way of an automated feedback survey (prompted)widget
- Feedback submitted viarequestFeedback
sdk
- Feedback submitted viafeedback
Variables
DEFAULT_TRANSLATIONS
feedbackContainerId
ID of HTML DIV element which contains the feedback dialog
propagatedEvents
These events will be propagated to the feedback dialog
see https://developer.mozilla.org/en-US/docs/Web/API/Element#events
Last updated