Movatterモバイル変換


[0]ホーム

URL:


Alert GO-2024-3228: Coder vulnerable to post-auth URL redirection to untrusted site ('Open Redirect') in github.com/coder/coder
Notice  The highest tagged major version isv2.

telemetry

package
v0.27.3Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2023 License:AGPL-3.0Imports:21Imported by:0

Details

Repository

github.com/coder/coder

Links

Documentation

Index

Constants

View Source
const (// VersionHeader is sent in every telemetry request to// report the semantic version of Coder.VersionHeader = "X-Coder-Version")

Variables

This section is empty.

Functions

This section is empty.

Types

typeAPIKey

type APIKey struct {IDstring             `json:"id"`UserIDuuid.UUID          `json:"user_id"`CreatedAttime.Time          `json:"created_at"`LastUsedtime.Time          `json:"last_used"`LoginTypedatabase.LoginType `json:"login_type"`IPAddressnet.IP             `json:"ip_address"`}

funcConvertAPIKey

func ConvertAPIKey(apiKeydatabase.APIKey)APIKey

ConvertAPIKey anonymizes an API key.

typeCLIInvocationadded inv0.23.6

type CLIInvocation struct {Commandstring      `json:"command"`Options []CLIOption `json:"options"`// InvokedAt is provided for deduplication purposes.InvokedAttime.Time `json:"invoked_at"`}

typeCLIOptionadded inv0.23.6

type CLIOption struct {Namestring `json:"name"`ValueSourcestring `json:"value_source"`}

typeDeployment

type Deployment struct {IDstring     `json:"id"`Architecturestring     `json:"architecture"`BuiltinPostgresbool       `json:"builtin_postgres"`Containerizedbool       `json:"containerized"`Kubernetesbool       `json:"kubernetes"`Tunnelbool       `json:"tunnel"`Wildcardbool       `json:"wildcard"`DERPServerRelayURLstring     `json:"derp_server_relay_url"`GitAuth            []GitAuth  `json:"git_auth"`GitHubOAuthbool       `json:"github_oauth"`OIDCAuthbool       `json:"oidc_auth"`OIDCIssuerURLstring     `json:"oidc_issuer_url"`Prometheusbool       `json:"prometheus"`InstallSourcestring     `json:"install_source"`STUNbool       `json:"stun"`OSTypestring     `json:"os_type"`OSFamilystring     `json:"os_family"`OSPlatformstring     `json:"os_platform"`OSNamestring     `json:"os_name"`OSVersionstring     `json:"os_version"`CPUCoresint        `json:"cpu_cores"`MemoryTotaluint64     `json:"memory_total"`MachineIDstring     `json:"machine_id"`StartedAttime.Time  `json:"started_at"`ShutdownAt         *time.Time `json:"shutdown_at"`}

Deployment contains information about the host running Coder.

typeGitAuthadded inv0.12.7

type GitAuth struct {Typestring `json:"type"`}

typeLicenseadded inv0.12.8

type License struct {UploadedAttime.Time `json:"uploaded_at"`UUIDuuid.UUID `json:"uuid"`}

funcConvertLicenseadded inv0.12.8

func ConvertLicense(licensedatabase.License)License

ConvertLicense anonymizes a license.

typeOptions

type Options struct {Databasedatabase.StoreLoggerslog.Logger// URL is an endpoint to direct telemetry towards!URL *url.URLBuiltinPostgresboolDeploymentIDstringGitHubOAuthboolOIDCAuthboolOIDCIssuerURLstringWildcardboolDERPServerRelayURLstringGitAuth            []GitAuthPrometheusboolSTUNboolSnapshotFrequencytime.DurationTunnelbool}

typeParameterSchema

type ParameterSchema struct {IDuuid.UUID `json:"id"`JobIDuuid.UUID `json:"job_id"`Namestring    `json:"name"`ValidationConditionstring    `json:"validation_condition"`}

typeProvisionerJob

type ProvisionerJob struct {IDuuid.UUID                   `json:"id"`OrganizationIDuuid.UUID                   `json:"organization_id"`InitiatorIDuuid.UUID                   `json:"initiator_id"`CreatedAttime.Time                   `json:"created_at"`UpdatedAttime.Time                   `json:"updated_at"`StartedAt      *time.Time                  `json:"started_at,omitempty"`CanceledAt     *time.Time                  `json:"canceled_at,omitempty"`CompletedAt    *time.Time                  `json:"completed_at,omitempty"`Errorstring                      `json:"error"`Typedatabase.ProvisionerJobType `json:"type"`}

funcConvertProvisionerJob

func ConvertProvisionerJob(jobdatabase.ProvisionerJob)ProvisionerJob

ConvertProvisionerJob anonymizes a provisioner job.

typeReporter

type Reporter interface {// Report sends a snapshot to the telemetry server.// The contents of the snapshot can be a partial representation of the// database. For example, if a new user is added, a snapshot can// contain just that user entry.Report(snapshot *Snapshot)Close()}

Reporter sends data to the telemetry server.

funcNew

func New(optionsOptions) (Reporter,error)

New constructs a reporter for telemetry data.Duplicate data will be sent, it's on the server-side to index by UUID.Data is anonymized prior to being sent!

funcNewNoop

func NewNoop()Reporter

NewNoop creates a new telemetry reporter that entirely discards all requests.

typeSnapshot

type Snapshot struct {DeploymentIDstring `json:"deployment_id"`APIKeys                   []APIKey                    `json:"api_keys"`ProvisionerJobs           []ProvisionerJob            `json:"provisioner_jobs"`Licenses                  []License                   `json:"licenses"`Templates                 []Template                  `json:"templates"`TemplateVersions          []TemplateVersion           `json:"template_versions"`Users                     []User                      `json:"users"`Workspaces                []Workspace                 `json:"workspaces"`WorkspaceApps             []WorkspaceApp              `json:"workspace_apps"`WorkspaceAgents           []WorkspaceAgent            `json:"workspace_agents"`WorkspaceAgentStats       []WorkspaceAgentStat        `json:"workspace_agent_stats"`WorkspaceBuilds           []WorkspaceBuild            `json:"workspace_build"`WorkspaceResources        []WorkspaceResource         `json:"workspace_resources"`WorkspaceResourceMetadata []WorkspaceResourceMetadata `json:"workspace_resource_metadata"`CLIInvocations            []CLIInvocation             `json:"cli_invocations"`}

Snapshot represents a point-in-time anonymized database dump.Data is aggregated by latest on the server-side, so partial datacan be sent without issue.

typeTemplate

type Template struct {IDuuid.UUID `json:"id"`CreatedByuuid.UUID `json:"created_by"`CreatedAttime.Time `json:"created_at"`UpdatedAttime.Time `json:"updated_at"`OrganizationIDuuid.UUID `json:"organization_id"`Deletedbool      `json:"deleted"`ActiveVersionIDuuid.UUID `json:"active_version_id"`Namestring    `json:"name"`Descriptionbool      `json:"description"`}

funcConvertTemplate

func ConvertTemplate(dbTemplatedatabase.Template)Template

ConvertTemplate anonymizes a template.

typeTemplateVersion

type TemplateVersion struct {IDuuid.UUID  `json:"id"`CreatedAttime.Time  `json:"created_at"`TemplateID     *uuid.UUID `json:"template_id,omitempty"`OrganizationIDuuid.UUID  `json:"organization_id"`JobIDuuid.UUID  `json:"job_id"`}

funcConvertTemplateVersion

func ConvertTemplateVersion(versiondatabase.TemplateVersion)TemplateVersion

ConvertTemplateVersion anonymizes a template version.

typeUser

type User struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`// Email is only filled in for the first/admin user!Email       *string             `json:"email"`EmailHashedstring              `json:"email_hashed"`RBACRoles   []string            `json:"rbac_roles"`Statusdatabase.UserStatus `json:"status"`}

funcConvertUser

func ConvertUser(dbUserdatabase.User)User

ConvertUser anonymizes a user.

typeWorkspace

type Workspace struct {IDuuid.UUID `json:"id"`OrganizationIDuuid.UUID `json:"organization_id"`OwnerIDuuid.UUID `json:"owner_id"`TemplateIDuuid.UUID `json:"template_id"`CreatedAttime.Time `json:"created_at"`Deletedbool      `json:"deleted"`Namestring    `json:"name"`AutostartSchedulestring    `json:"autostart_schedule"`}

funcConvertWorkspace

func ConvertWorkspace(workspacedatabase.Workspace)Workspace

ConvertWorkspace anonymizes a workspace.

typeWorkspaceAgent

type WorkspaceAgent struct {IDuuid.UUID  `json:"id"`CreatedAttime.Time  `json:"created_at"`ResourceIDuuid.UUID  `json:"resource_id"`InstanceAuthbool       `json:"instance_auth"`Architecturestring     `json:"architecture"`OperatingSystemstring     `json:"operating_system"`EnvironmentVariablesbool       `json:"environment_variables"`StartupScriptbool       `json:"startup_script"`Directorybool       `json:"directory"`FirstConnectedAt         *time.Time `json:"first_connected_at"`LastConnectedAt          *time.Time `json:"last_connected_at"`DisconnectedAt           *time.Time `json:"disconnected_at"`ConnectionTimeoutSecondsint32      `json:"connection_timeout_seconds"`ShutdownScriptbool       `json:"shutdown_script"`Subsystemstring     `json:"subsystem"`}

funcConvertWorkspaceAgent

func ConvertWorkspaceAgent(agentdatabase.WorkspaceAgent)WorkspaceAgent

ConvertWorkspaceAgent anonymizes a workspace agent.

typeWorkspaceAgentStatadded inv0.20.0

type WorkspaceAgentStat struct {UserIDuuid.UUID `json:"user_id"`TemplateIDuuid.UUID `json:"template_id"`WorkspaceIDuuid.UUID `json:"workspace_id"`AggregatedFromtime.Time `json:"aggregated_from"`AgentIDuuid.UUID `json:"agent_id"`RxBytesint64     `json:"rx_bytes"`TxBytesint64     `json:"tx_bytes"`ConnectionLatency50float64   `json:"connection_latency_50"`ConnectionLatency95float64   `json:"connection_latency_95"`SessionCountVSCodeint64     `json:"session_count_vscode"`SessionCountJetBrainsint64     `json:"session_count_jetbrains"`SessionCountReconnectingPTYint64     `json:"session_count_reconnecting_pty"`SessionCountSSHint64     `json:"session_count_ssh"`}

funcConvertWorkspaceAgentStatadded inv0.20.0

func ConvertWorkspaceAgentStat(statdatabase.GetWorkspaceAgentStatsRow)WorkspaceAgentStat

ConvertWorkspaceAgentStat anonymizes a workspace agent stat.

typeWorkspaceApp

type WorkspaceApp struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`AgentIDuuid.UUID `json:"agent_id"`Iconstring    `json:"icon"`Subdomainbool      `json:"subdomain"`}

funcConvertWorkspaceApp

func ConvertWorkspaceApp(appdatabase.WorkspaceApp)WorkspaceApp

ConvertWorkspaceApp anonymizes a workspace app.

typeWorkspaceBuild

type WorkspaceBuild struct {IDuuid.UUID `json:"id"`CreatedAttime.Time `json:"created_at"`WorkspaceIDuuid.UUID `json:"workspace_id"`TemplateVersionIDuuid.UUID `json:"template_version_id"`JobIDuuid.UUID `json:"job_id"`BuildNumberuint32    `json:"build_number"`}

funcConvertWorkspaceBuild

func ConvertWorkspaceBuild(builddatabase.WorkspaceBuild)WorkspaceBuild

ConvertWorkspaceBuild anonymizes a workspace build.

typeWorkspaceResource

type WorkspaceResource struct {IDuuid.UUID                    `json:"id"`JobIDuuid.UUID                    `json:"job_id"`Transitiondatabase.WorkspaceTransition `json:"transition"`Typestring                       `json:"type"`InstanceTypestring                       `json:"instance_type"`}

funcConvertWorkspaceResource

func ConvertWorkspaceResource(resourcedatabase.WorkspaceResource)WorkspaceResource

ConvertWorkspaceResource anonymizes a workspace resource.

typeWorkspaceResourceMetadataadded inv0.8.6

type WorkspaceResourceMetadata struct {ResourceIDuuid.UUID `json:"resource_id"`Keystring    `json:"key"`Sensitivebool      `json:"sensitive"`}

funcConvertWorkspaceResourceMetadataadded inv0.8.6

func ConvertWorkspaceResourceMetadata(metadatadatabase.WorkspaceResourceMetadatum)WorkspaceResourceMetadata

ConvertWorkspaceResourceMetadata anonymizes workspace metadata.

Source Files

View all Source files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f orF : Jump to
y orY : Canonical URL
go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.Learn more.

[8]ページ先頭

©2009-2025 Movatter.jp