shared

package
v0.0.0-...-7ae9f15 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const DateOnly = "2006-01-02"

Variables

This section is empty.

Functions

func Chunks

func Chunks[k any](slice []k, chunkSize int) [][]k

func ForEach

func ForEach[T any](arr []T, numThreads int, fn func(T) error) error

Types

type DeletionRequest

type DeletionRequest struct {
	// The UserID that we're deleting entries for
	UserId string `json:"user_id"`
	// The DeviceID that is handling this deletion request. This struct is duplicated and put into the queue
	// for each of a user's devices.
	DestinationDeviceId string `json:"destination_device_id"`
	// When this deletion request was sent
	SendTime time.Time `json:"send_time"`
	// The history entries to delete
	Messages MessageIdentifiers `json:"messages"`
	// How many times this request has been processed
	ReadCount int `json:"read_count"`
}

Represents a request to delete history entries

type DumpRequest

type DumpRequest struct {
	UserId             string    `json:"user_id"`
	RequestingDeviceId string    `json:"requesting_device_id"`
	RequestTime        time.Time `json:"request_time"`
}

Represents a request to get all history entries from a given device. Used as part of bootstrapping a new device.

type EncHistoryEntry

type EncHistoryEntry struct {
	EncryptedData []byte `json:"enc_data"`
	Nonce         []byte `json:"nonce"`
	// DeviceId is the ID of the device that will read this entry from the backend. It is *not* the ID of the device that recorded the command.
	DeviceId string `json:"device_id"`
	UserId   string `json:"user_id"`
	// Note that EncHistoryEntry.Date == HistoryEntry.EndTime
	Date time.Time `json:"time"`
	// Note that EncHistoryEntry.EncryptedId == HistoryEntry.Id (for entries created after pre-saving support)
	EncryptedId string `json:"encrypted_id"`
	ReadCount   int    `json:"read_count"`
	// Whether this encrypted history entry came from DeviceId. If IsFromSameDevice is true,
	// then this won't be sent back by the query endpoint. We do still purposefully store
	// these since they're useful for initializing new devices.
	IsFromSameDevice bool `json:"is_from_same_device"`
}

Represents an encrypted history entry

type Feedback

type Feedback struct {
	UserId   string    `json:"user_id" gorm:"not null"`
	Date     time.Time `json:"date" gorm:"not null"`
	Feedback string    `json:"feedback"`
}

Represents a piece of user feedback, submitted upon uninstall

type MessageIdentifier

type MessageIdentifier struct {
	// The device that the entry was recorded on (NOT the device where it is stored/requesting deletion)
	DeviceId string `json:"device_id"`
	// The timestamp when the command finished running. Serialized as "date" for legacy compatibility.
	EndTime time.Time `json:"date"`
	// The entry ID of the command.
	// Note this field was added as part of supporting pre-saving commands, so older clients do not set this field
	// And even for new clients, it may contain a per-device entry ID. For pre-saved entries, this is guaranteed to
	// be present.
	EntryId string `json:"entry_id"`
}

Identifies a single history entry based on the device that recorded the entry, and additional metadata. Note that this does not include the command itself since that would risk including the sensitive data that is meant to be deleted

type MessageIdentifiers

type MessageIdentifiers struct {
	Ids []MessageIdentifier `json:"message_ids"`
}

Identifies a list of history entries that should be deleted

func (*MessageIdentifiers) Scan

func (m *MessageIdentifiers) Scan(value any) error

func (MessageIdentifiers) Value

func (m MessageIdentifiers) Value() (driver.Value, error)

type ParsedVersion

type ParsedVersion struct {
	MajorVersion int
	MinorVersion int
}

func ParseVersionString

func ParseVersionString(versionString string) (ParsedVersion, error)

func (ParsedVersion) Decrement

func (pv ParsedVersion) Decrement() ParsedVersion

func (ParsedVersion) GreaterThan

func (pv ParsedVersion) GreaterThan(other ParsedVersion) bool

func (ParsedVersion) LessThan

func (pv ParsedVersion) LessThan(other ParsedVersion) bool

func (ParsedVersion) String

func (pv ParsedVersion) String() string

type SubmitResponse

type SubmitResponse struct {
	DumpRequests     []*DumpRequest     `json:"dump_requests"`
	DeletionRequests []*DeletionRequest `json:"deletion_requests"`
}

Response from submitting new history entries. Contains deletion requests and dump requests to avoid extra round-trip requests to the hishtory backend.

type UpdateInfo

type UpdateInfo struct {
	LinuxAmd64Url             string `json:"linux_amd_64_url"`
	LinuxAmd64AttestationUrl  string `json:"linux_amd_64_attestation_url"`
	LinuxArm64Url             string `json:"linux_arm_64_url"`
	LinuxArm64AttestationUrl  string `json:"linux_arm_64_attestation_url"`
	LinuxArm7Url              string `json:"linux_arm_7_url"`
	LinuxArm7AttestationUrl   string `json:"linux_arm_7_attestation_url"`
	DarwinAmd64Url            string `json:"darwin_amd_64_url"`
	DarwinAmd64UnsignedUrl    string `json:"darwin_amd_64_unsigned_url"`
	DarwinAmd64AttestationUrl string `json:"darwin_amd_64_attestation_url"`
	DarwinArm64Url            string `json:"darwin_arm_64_url"`
	DarwinArm64UnsignedUrl    string `json:"darwin_arm_64_unsigned_url"`
	DarwinArm64AttestationUrl string `json:"darwin_arm_64_attestation_url"`
	Version                   string `json:"version"`
}

Identifies where updates can be downloaded from

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL