tag

package
v1.0.14 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RequestBodyReadErrorMsg        = "request body unmarshall error: %s"
	NotSpecifiedErrorMsg           = "%s is not specified"
	EmptyListErrorMsg              = "%s list is empty"
	MaxMemberLimitExceededErrorMsg = "batch size %d exceeds the limit of %d"
	ResponseWriterCastErrorMsg     = "response writer cast error"
	NotFoundErrorMsg               = "%s tag not found"

	TagMemberLimit = 1000
)
View Source
const (
	DefaultPageSize = 1000
	MaxPageSize     = 5000
)
View Source
const (
	LoggedBatch   = 0
	UnloggedBatch = 1
	CounterBatch  = 2
)
View Source
const (
	BucketCount             = 1000
	DefaultPageSizeV2       = 500
	MaxPageSizeV2           = 200000
	MaxBatchSizeV2          = 5000
	MaxWorkersV2            = 100
	MaxMembersInTagResponse = 100000 // Max members returned in GetTagById
	MemberFetchChunkSize    = 1000   // Chunk size for memory-safe pagination

	QueryAddMemberBucketed       = `INSERT INTO "TagMembersBucketed" (tag_id, bucket_id, member, created) VALUES (?, ?, ?, ?)`
	QueryRemoveMemberBucketed    = `DELETE FROM "TagMembersBucketed" WHERE tag_id = ? AND bucket_id = ? AND member = ?`
	QueryGetMembersByBucket      = `SELECT member FROM "TagMembersBucketed" WHERE tag_id = ? AND bucket_id = ? AND member > ? LIMIT ?`
	QueryGetMembersCountByBucket = `SELECT count(*) FROM "TagMembersBucketed" WHERE tag_id = ? and bucket_id = ?`
	QueryGetMembersByBucketFirst = `SELECT member FROM "TagMembersBucketed" WHERE tag_id = ? AND bucket_id = ? LIMIT ?`

	QueryGetPopulatedBuckets  = `SELECT bucket_id FROM "TagBucketMetadata" WHERE tag_id = ?`
	QueryAddBucketMetadata    = `INSERT INTO "TagBucketMetadata" (tag_id, bucket_id) VALUES (?, ?)`
	QueryGetAllTagIds         = `SELECT tag_id FROM "TagBucketMetadata"`
	QueryDeleteBucketMembers  = `DELETE FROM "TagMembersBucketed" WHERE tag_id = ? AND bucket_id = ?`
	QueryDeleteBucketMetadata = `DELETE FROM "TagBucketMetadata" WHERE tag_id = ? AND bucket_id = ?`

	CountMembersCassandraResp = "count"
)
View Source
const (
	Prefix   = "t_"
	Template = "%s%s"
)

Variables

This section is empty.

Functions

func AddMembers added in v1.0.14

func AddMembers(tagId string, members []string) error

func AddMembersToTagHandler

func AddMembersToTagHandler(w http.ResponseWriter, r *http.Request)

AddMembersToTagHandler - Updated with bucketed implementation

func AddMembersWithXdas added in v1.0.10

func AddMembersWithXdas(tagId string, members []string) (int, error)

AddMembersWithXdas adds members to both XDAS and Cassandra (XDAS-first approach) Returns the count of members actually stored to Cassandra.

func CheckBatchSizeExceeded

func CheckBatchSizeExceeded(batchSize int) error

func DeleteTag

func DeleteTag(tagId string) error

DeleteTag deletes a tag completely from V2 storage (XDAS and Cassandra) Uses memory-safe chunked deletion to handle tags with millions of members

func DeleteTagHandler

func DeleteTagHandler(w http.ResponseWriter, r *http.Request)

DeleteTagHandler deletes a tag and all its members from V2 storage asynchronously

func GetAllTagIds

func GetAllTagIds() ([]string, error)

GetAllTagIds returns all tag IDs from V2 tables

func GetAllTagsHandler

func GetAllTagsHandler(w http.ResponseWriter, r *http.Request)

GetAllTagsHandler returns all tag IDs from V2 storage

func GetGroupServiceConnector

func GetGroupServiceConnector() *http.GroupServiceConnector

func GetGroupServiceSyncConnector

func GetGroupServiceSyncConnector() *http.GroupServiceSyncConnector

func GetMembersNonPaginated added in v1.0.14

func GetMembersNonPaginated(tagId string) ([]string, bool, error)

GetMembersNonPaginated retrieves tag members for non-paginated response (V1 compatibility) Returns up to MaxMembersInTagResponse (100k) members as a plain array

func GetTagApiConfig

func GetTagApiConfig() *taggingapi_config.TaggingApiConfig

func GetTagById

func GetTagById(tagId string) ([]string, bool, error)

GetTagById retrieves a tag with up to MaxMembersInTagResponse members

func GetTagByIdHandler

func GetTagByIdHandler(w http.ResponseWriter, r *http.Request)

GetTagByIdHandler retrieves a single tag with its members from V2 storage

func GetTagMembersHandler

func GetTagMembersHandler(w http.ResponseWriter, r *http.Request)

GetTagMembersHandler - Unified handler supporting both paginated and non-paginated responses Non-paginated mode (V1 compatible): Returns []string with up to 100k members, HTTP 206 if truncated Paginated mode: Returns paginated envelope when limit/cursor params are present

func GetTagsByMember

func GetTagsByMember(member string) ([]string, error)

func GetTagsByMemberHandler

func GetTagsByMemberHandler(w http.ResponseWriter, r *http.Request)

func RemoveMemberFromTagHandler

func RemoveMemberFromTagHandler(w http.ResponseWriter, r *http.Request)

RemoveMemberFromTagHandler - Updated with bucketed implementation

func RemoveMemberWithXdas added in v1.0.14

func RemoveMemberWithXdas(tagId string, member string) error

RemoveMemberWithXdas removes a single member from both XDAS and Cassandra V2

func RemoveMembers added in v1.0.14

func RemoveMembers(tagId string, members []string) error

func RemoveMembersFromTagHandler

func RemoveMembersFromTagHandler(w http.ResponseWriter, r *http.Request)

RemoveMembersFromTagHandler - Updated with bucketed implementation

func RemoveMembersWithXdas added in v1.0.14

func RemoveMembersWithXdas(tagId string, members []string) (int, error)

RemoveMembersWithXdas removes members from both XDAS and Cassandra (XDAS-first approach) Returns the count of members actually removed from Cassandra.

func RemovePrefixFromTag

func RemovePrefixFromTag(tagId string) string

func SetTagApiConfig

func SetTagApiConfig(config *taggingapi_config.TaggingApiConfig)

func SetTagPrefix

func SetTagPrefix(tagId string) string

func ToEstbIfMac

func ToEstbIfMac(member string) string

func ToNormalized

func ToNormalized(member string) string

func ToNormalizedEcm

func ToNormalizedEcm(member string) string

Types

type BucketedCursor added in v1.0.10

type BucketedCursor struct {
	BucketId       int    `json:"bucketId"`
	LastMember     string `json:"lastMember,omitempty"`
	TotalCollected int    `json:"totalCollected"`
}

type PaginatedMembersResponse added in v1.0.10

type PaginatedMembersResponse struct {
	Data       []string `json:"data"`
	NextCursor string   `json:"nextCursor,omitempty"`
	HasMore    bool     `json:"hasMore"`
}

func GetMembersPaginated added in v1.0.14

func GetMembersPaginated(tagId string, limit int, cursor string) (*PaginatedMembersResponse, error)

type PaginationParams added in v1.0.10

type PaginationParams struct {
	Limit  int    `json:"limit"`
	Cursor string `json:"cursor,omitempty"`
}

Jump to

Keyboard shortcuts

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