Documentation ¶
Overview ¶
Package redash is a simple redash client library
Index ¶
- type Client
- func (c *Client) ArchiveDashboard(slug string) error
- func (c *Client) ArchiveQuery(id int) error
- func (c *Client) CreateDashboard(dashboard *DashboardCreatePayload) (*Dashboard, error)
- func (c *Client) CreateDataSource(dataSourcePayload *DataSource) (*DataSource, error)
- func (c *Client) CreateGroup(groupPayload *GroupCreatePayload) (*Group, error)
- func (c *Client) CreateQuery(query *QueryCreatePayload) (*Query, error)
- func (c *Client) CreateUser(userCreatePayload *UserCreatePayload) (*User, error)
- func (c *Client) CreateVisualization(visualizationCreatePayload *VisualizationCreatePayload) (*Visualization, error)
- func (c *Client) CreateWidget(widgetCreatePayload *WidgetCreatePayload) (*Widget, error)
- func (c *Client) DeleteDataSource(id int) error
- func (c *Client) DeleteGroup(id int) error
- func (c *Client) DeleteVisualization(id int) error
- func (c *Client) DeleteWidget(id int) error
- func (c *Client) DisableUser(id int) error
- func (c *Client) GetDashboard(slug string) (*Dashboard, error)
- func (c *Client) GetDataSource(id int) (*DataSource, error)
- func (c *Client) GetDataSourceTypes() ([]DataSourceType, error)
- func (c *Client) GetDataSources() (*[]DataSource, error)
- func (c *Client) GetGroup(id int) (*Group, error)
- func (c *Client) GetGroups() (*[]Group, error)
- func (c *Client) GetQueries() (*QueriesList, error)
- func (c *Client) GetQuery(id int) (*Query, error)
- func (c *Client) GetUser(id int) (*User, error)
- func (c *Client) GetUserByEmail(email string) (*User, error)
- func (c *Client) GetUsers(page, pageSize int) (*UserList, error)
- func (c *Client) GetVisualization(queryId, visualizationId int) (*Visualization, error)
- func (c *Client) GetWidget(dashboardSlug string, widgetId int) (*Widget, error)
- func (c *Client) GroupAddDataSource(groupID int, dataSourceID int) error
- func (c *Client) GroupAddUser(groupID int, userID int) error
- func (c *Client) GroupRemoveDataSource(groupID int, dataSourceID int) error
- func (c *Client) GroupRemoveUser(groupID int, userID int) error
- func (c *Client) IsStrict() bool
- func (c *Client) SanitizeDataSourceOptions(dataSource *DataSource) (*DataSource, error)
- func (c *Client) SearchUsers(term string) (*UserList, error)
- func (c *Client) UpdateDashboard(id int, dashboard *DashboardUpdatePayload) (*Dashboard, error)
- func (c *Client) UpdateDataSource(id int, dataSourcePayload *DataSource) (*DataSource, error)
- func (c *Client) UpdateGroup(id int, group *Group) (*Group, error)
- func (c *Client) UpdateQuery(id int, query *QueryUpdatePayload) (*Query, error)
- func (c *Client) UpdateUser(id int, userUpdatePayload *UserUpdatePayload) (*User, error)
- func (c *Client) UpdateVisualization(id int, visualizationUpdatePayload *VisualizationUpdatePayload) (*Visualization, error)
- func (c *Client) UpdateWidget(id int, widgetUpdatePayload *WidgetUpdatePayload) (*Widget, error)
- type Config
- type Dashboard
- type DashboardCreatePayload
- type DashboardUpdatePayload
- type DashboardVisualization
- type DataSource
- type DataSourceType
- type DataSourceTypePropertyField
- type Group
- type GroupCreatePayload
- type GroupDataSource
- type GroupUser
- type QueriesList
- type Query
- type QueryCreatePayload
- type QueryOptions
- type QueryOptionsParameter
- type QuerySchedule
- type QueryUpdatePayload
- type SeriesOptions
- type User
- type UserCreatePayload
- type UserList
- type UserUpdatePayload
- type Visualization
- type VisualizationAxisOptions
- type VisualizationCreatePayload
- type VisualizationLabelOptions
- type VisualizationLegendOptions
- type VisualizationOptions
- type VisualizationUpdatePayload
- type Widget
- type WidgetCreatePayload
- type WidgetOptions
- type WidgetParameterMapping
- type WidgetPosition
- type WidgetUpdatePayload
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
Config *Config
}
Client contains an active Redash API client
func (*Client) ArchiveDashboard ¶
func (*Client) ArchiveQuery ¶
ArchiveQuery archives an existing Redash query
func (*Client) CreateDashboard ¶
func (c *Client) CreateDashboard(dashboard *DashboardCreatePayload) (*Dashboard, error)
func (*Client) CreateDataSource ¶
func (c *Client) CreateDataSource(dataSourcePayload *DataSource) (*DataSource, error)
CreateDataSource creates a new DataSource
func (*Client) CreateGroup ¶
func (c *Client) CreateGroup(groupPayload *GroupCreatePayload) (*Group, error)
CreateGroup creates a new Redash group
func (*Client) CreateQuery ¶
func (c *Client) CreateQuery(query *QueryCreatePayload) (*Query, error)
CreateQuery creates a new Redash query
func (*Client) CreateUser ¶
func (c *Client) CreateUser(userCreatePayload *UserCreatePayload) (*User, error)
CreateUser creates a new Redash user
func (*Client) CreateVisualization ¶
func (c *Client) CreateVisualization(visualizationCreatePayload *VisualizationCreatePayload) (*Visualization, error)
CreateVisualization creates a new Redash visualization
func (*Client) CreateWidget ¶
func (c *Client) CreateWidget(widgetCreatePayload *WidgetCreatePayload) (*Widget, error)
func (*Client) DeleteDataSource ¶
DeleteDataSource deletes a specific DataSource
func (*Client) DeleteGroup ¶
DeleteGroup deletes a Redash group
func (*Client) DeleteVisualization ¶
DeleteVisualization deletes a visualization
func (*Client) DeleteWidget ¶
func (*Client) DisableUser ¶
DisableUser disables an active user.
func (*Client) GetDashboard ¶
GetDashboard gets a specific dashboard
func (*Client) GetDataSource ¶
func (c *Client) GetDataSource(id int) (*DataSource, error)
GetDataSource gets a specific DataSource
func (*Client) GetDataSourceTypes ¶
func (c *Client) GetDataSourceTypes() ([]DataSourceType, error)
GetDataSourceTypes gets all available types with configuration details
func (*Client) GetDataSources ¶
func (c *Client) GetDataSources() (*[]DataSource, error)
GetDataSources gets an array of all DataSources available
func (*Client) GetQueries ¶
func (c *Client) GetQueries() (*QueriesList, error)
GetQueries returns a paginated list of queries
func (*Client) GetUserByEmail ¶
GetUserByEmail returns a single user from their email address
func (*Client) GetVisualization ¶
func (c *Client) GetVisualization(queryId, visualizationId int) (*Visualization, error)
GetVisualization gets a specific visualization
func (*Client) GroupAddDataSource ¶
GroupAddDataSource adds a Data Source to a Redash group
func (*Client) GroupAddUser ¶
GroupAddUser adds a user to a Redash group
func (*Client) GroupRemoveDataSource ¶
GroupRemoveDataSource removes a Data Source from a Redash group
func (*Client) GroupRemoveUser ¶
GroupRemoveUser removes a user from a Redash group
func (*Client) IsStrict ¶
IsStrict returns true if StrictMode is set. This currently causes data_source creates/updates to fail if extraneous properties are present in the payload.
func (*Client) SanitizeDataSourceOptions ¶
func (c *Client) SanitizeDataSourceOptions(dataSource *DataSource) (*DataSource, error)
SanitizeDataSourceOptions checks the validity of the options field in a DataSource.Option against Redash's API and cleans up when possible
func (*Client) SearchUsers ¶
SearchUsers finds a list of users matching a string (searches `name` and `email` fields)
func (*Client) UpdateDashboard ¶
func (c *Client) UpdateDashboard(id int, dashboard *DashboardUpdatePayload) (*Dashboard, error)
func (*Client) UpdateDataSource ¶
func (c *Client) UpdateDataSource(id int, dataSourcePayload *DataSource) (*DataSource, error)
UpdateDataSource Updates an existing DataSource
func (*Client) UpdateGroup ¶
UpdateGroup updates an existing Redash group
func (*Client) UpdateQuery ¶
func (c *Client) UpdateQuery(id int, query *QueryUpdatePayload) (*Query, error)
UpdateQuery updates an existing Redash query
func (*Client) UpdateUser ¶
func (c *Client) UpdateUser(id int, userUpdatePayload *UserUpdatePayload) (*User, error)
UpdateUser updates an existing Redash user
func (*Client) UpdateVisualization ¶
func (c *Client) UpdateVisualization(id int, visualizationUpdatePayload *VisualizationUpdatePayload) (*Visualization, error)
UpdateVisualization updates an existing Redash visualization
func (*Client) UpdateWidget ¶
func (c *Client) UpdateWidget(id int, widgetUpdatePayload *WidgetUpdatePayload) (*Widget, error)
type Dashboard ¶
type Dashboard struct { ID int `json:"id"` Slug string `json:"slug"` Name string `json:"name"` UserID int `json:"user_id"` User User `json:"user"` Layout []interface{} `json:"layout"` DashboardFiltersEnabled bool `json:"dashboard_filters_enabled"` Widgets []Widget `json:"widgets"` IsArchived bool `json:"is_archived"` IsDraft bool `json:"is_draft"` Tags []string `json:"tags"` UpdatedAt time.Time `json:"updated_at"` CreatedAt time.Time `json:"created_at"` Version int `json:"version"` IsFavorite bool `json:"is_favorite"` CanEdit bool `json:"can_edit"` }
type DashboardCreatePayload ¶
type DashboardCreatePayload struct {
Name string `json:"name"`
}
type DashboardUpdatePayload ¶
type DashboardUpdatePayload struct {
Name string `json:"name"`
}
type DashboardVisualization ¶
type DataSource ¶
type DataSource struct { ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` ScheduledQueueName string `json:"scheduled_queue_name,omitempty"` QueueName string `json:"queue_name,omitempty"` Options map[string]interface{} `json:"options,omitempty"` Paused int `json:"paused,omitempty"` PauseReason string `json:"pause_reason,omitempty"` Type string `json:"type,omitempty"` Syntax string `json:"syntax,omitempty"` Groups map[int]bool `json:"groups,omitempty"` }
DataSource struct
type DataSourceType ¶
type DataSourceType struct { Type string `json:"type"` Name string `json:"name,omitempty"` ConfigurationSchema struct { Secret []string `json:"secret,omitempty"` Required []string `json:"required,omitempty"` Type string `json:"type,omitempty"` Order []string `json:"order,omitempty"` Properties map[string]DataSourceTypePropertyField `json:"properties,omitempty"` } `json:"configuration_schema,omitempty"` }
DataSourceType struct
type DataSourceTypePropertyField ¶
DataSourceTypePropertyField struct
type Group ¶
type Group struct { CreatedAt time.Time `json:"created_at,omitempty"` Permissions []string `json:"permissions,omitempty"` Type string `json:"type,omitempty"` ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` }
Group struct
type GroupCreatePayload ¶
type GroupCreatePayload struct {
Name string `json:"name"`
}
GroupCreatePayload struct
type GroupDataSource ¶
type GroupDataSource struct {
DataSourceID int `json:"data_source_id"`
}
GroupDataSource struct
type QueriesList ¶
type QueriesList struct { Count int `json:"count"` Page int `json:"page"` PageSize int `json:"page_size"` Results []struct { ID int `json:"id"` IsArchived bool `json:"is_archived"` CreatedAt time.Time `json:"created_at"` RetrievedAt time.Time `json:"retrieved_at"` UpdatedAt time.Time `json:"updated_at"` Name string `json:"name"` Description string `json:"description"` Query string `json:"query"` QueryHash string `json:"query_hash"` Version int `json:"version"` LastModifiedByID int `json:"last_modified_by_id"` Tags []string `json:"tags"` APIKey string `json:"api_key"` DataSourceID int `json:"data_source_id"` LatestQueryDataID int `json:"latest_query_data_id"` Schedule QuerySchedule `json:"schedule"` User User `json:"user"` IsFavorite bool `json:"is_favorite"` IsDraft bool `json:"is_draft"` IsSafe bool `json:"is_safe"` Runtime float32 `json:"runtime"` Options QueryOptions `json:"options"` } }
QueriesList models the response from Redash's /api/queries endpoint
type Query ¶
type Query struct { ID int `json:"id"` Name string `json:"name"` Description string `json:"description"` Query string `json:"query"` QueryHash string `json:"query_hash"` Version int `json:"version"` Schedule QuerySchedule `json:"schedule"` APIKey string `json:"api_key"` IsArchived bool `json:"is_archived"` IsDraft bool `json:"is_draft"` UpdatedAt time.Time `json:"updated_at"` CreatedAt time.Time `json:"created_at"` DataSourceID int `json:"data_source_id"` LatestQueryDataID int `json:"latest_query_data_id"` Tags []string `json:"tags"` IsSafe bool `json:"is_safe"` User User `json:"user"` LastModifiedBy User `json:"last_modified_by"` IsFavorite bool `json:"is_favorite"` CanEdit bool `json:"can_edit"` Options QueryOptions `json:"options"` Visualizations []Visualization `json:"visualizations"` }
Query models the response from Redash's /api/queries endpoint
type QueryCreatePayload ¶
type QueryCreatePayload struct { Name string `json:"name,omitempty"` Query string `json:"query,omitempty"` DataSourceID int `json:"data_source_id,omitempty"` Description string `json:"description,omitempty"` }
QueryCreatePayload defines the schema for creating a new Redash query
type QueryOptions ¶
type QueryOptions struct {
Parameters []QueryOptionsParameter `json:"parameters"`
}
QueryOptions struct
type QueryOptionsParameter ¶
type QueryOptionsParameter struct { Title string `json:"title"` Name string `json:"name"` Type string `json:"type"` EnumOptions string `json:"enum_options"` Locals []interface{} `json:"locals"` Value interface{} `json:"value"` }
QueryOptionsParameter struct
type QuerySchedule ¶
type QuerySchedule struct { Interval int `json:"interval"` Time string `json:"time"` DayOfWeek string `json:"day_of_week"` Until interface{} `json:"until"` }
QuerySchedule struct
type QueryUpdatePayload ¶
type QueryUpdatePayload struct { Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Query string `json:"query,omitempty"` DataSourceID int `json:"data_source_id,omitempty"` IsDraft bool `json:"is_draft,omitempty"` Options bool `json:"options,omitempty"` Version bool `json:"version,omitempty"` }
QueryUpdatePayload defines the schema for updating a Redash query
type SeriesOptions ¶
type User ¶
type User struct { AuthType string `json:"auth_type,omitempty"` IsDisabled bool `json:"is_disabled,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty"` ProfileImageURL string `json:"profile_image_url,omitempty"` IsInvitationPending bool `json:"is_invitation_pending,omitempty"` Groups []int `json:"groups,omitempty"` ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` DisabledAt interface{} `json:"disabled_at,omitempty"` IsEmailVerified bool `json:"is_email_verified,omitempty"` ActiveAt time.Time `json:"active_at,omitempty"` Email string `json:"email,omitempty"` }
User representation
type UserCreatePayload ¶
UserCreatePayload struct for mutating users.
type UserList ¶
type UserList struct { Count int `json:"count"` Page int `json:"page"` PageSize int `json:"page_size"` Results []struct { AuthType string `json:"auth_type,omitempty"` IsDisabled bool `json:"is_disabled,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty"` ProfileImageURL string `json:"profile_image_url,omitempty"` IsInvitationPending bool `json:"is_invitation_pending,omitempty"` Groups []struct { ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` } `json:"groups,omitempty"` ID int `json:"id,omitempty"` Name string `json:"name,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` DisabledAt interface{} `json:"disabled_at,omitempty"` IsEmailVerified bool `json:"is_email_verified,omitempty"` ActiveAt time.Time `json:"active_at,omitempty"` Email string `json:"email,omitempty"` } `json:"results,omitempty"` }
UserList struct
type UserUpdatePayload ¶
type UserUpdatePayload struct { Name string `json:"name"` Email string `json:"email"` Groups []int `json:"group_ids"` }
UserUpdatePayload struct for mutating users.
type Visualization ¶
type Visualization struct { ID int `json:"id"` Type string `json:"type"` Name string `json:"name"` Description string `json:"description"` Options VisualizationOptions `json:"options"` UpdatedAt time.Time `json:"updated_at"` CreatedAt time.Time `json:"created_at"` }
Visualization struct
type VisualizationAxisOptions ¶
type VisualizationAxisOptions struct { Type string `json:"type"` Opposite bool `json:"opposite"` Labels VisualizationLabelOptions `json:"labels"` }
VisualizationAxisOptions struct
type VisualizationCreatePayload ¶
type VisualizationCreatePayload struct { Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` QueryId int `json:"query_id,omitempty"` Description string `json:"description,omitempty"` Options VisualizationOptions `json:"options,omitempty"` }
type VisualizationLabelOptions ¶
type VisualizationLabelOptions struct {
Enabled bool `json:"enabled"`
}
VisualizationLabelOptions struct
type VisualizationLegendOptions ¶
type VisualizationLegendOptions struct { Enabled bool `json:"enabled"` Placement string `json:"placement"` }
VisualizationLegendOptions struct
type VisualizationOptions ¶
type VisualizationOptions struct { XAxis VisualizationAxisOptions `json:"xAxis,omitempty"` YAxis []VisualizationAxisOptions `json:"yAxis,omitempty"` Series map[string]interface{} `json:"series,omitempty"` GlobalSeriesType string `json:"globalSeriesType,omitempty"` SortX bool `json:"sortX"` SeriesOptions map[string]SeriesOptions `json:"seriesOptions,omitempty"` ColumnMapping map[string]string `json:"columnMapping,omitempty"` Legend VisualizationLegendOptions `json:"legend,omitempty"` }
VisualizationOptions struct
type VisualizationUpdatePayload ¶
type VisualizationUpdatePayload struct { Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` Description string `json:"description,omitempty"` Options VisualizationOptions `json:"options,omitempty"` }
type Widget ¶
type Widget struct { ID int `json:"id"` Width int `json:"width"` Options WidgetOptions `json:"options"` DashboardID int `json:"dashboard_id"` Text string `json:"text"` UpdatedAt time.Time `json:"updated_at"` CreatedAt time.Time `json:"created_at"` Visualization DashboardVisualization `json:"visualization"` }
type WidgetCreatePayload ¶
type WidgetCreatePayload struct { DashboardID int `json:"dashboard_id"` Text string `json:"text"` VisualizationID int `json:"visualization_id"` Width int `json:"width"` WidgetOptions WidgetOptions `json:"options"` }
type WidgetOptions ¶
type WidgetOptions struct { IsHidden bool `json:"is_hidden"` Position WidgetPosition `json:"position"` ParameterMappings map[string]WidgetParameterMapping `json:"parameterMappings"` }
type WidgetParameterMapping ¶
type WidgetPosition ¶
type WidgetUpdatePayload ¶
type WidgetUpdatePayload struct { Text string `json:"text"` Width int `json:"width"` WidgetOptions WidgetOptions `json:"options"` }