Documentation
¶
Index ¶
- Constants
- func AddMembers(tagId string, members []string) error
- func AddMembersToTagHandler(w http.ResponseWriter, r *http.Request)
- func AddMembersWithXdas(tagId string, members []string) (int, error)
- func CheckBatchSizeExceeded(batchSize int) error
- func DeleteTag(tagId string) error
- func DeleteTagHandler(w http.ResponseWriter, r *http.Request)
- func GetAllTagIds() ([]string, error)
- func GetAllTagsHandler(w http.ResponseWriter, r *http.Request)
- func GetGroupServiceConnector() *http.GroupServiceConnector
- func GetGroupServiceSyncConnector() *http.GroupServiceSyncConnector
- func GetMembersNonPaginated(tagId string) ([]string, bool, error)
- func GetTagApiConfig() *taggingapi_config.TaggingApiConfig
- func GetTagById(tagId string) ([]string, bool, error)
- func GetTagByIdHandler(w http.ResponseWriter, r *http.Request)
- func GetTagMembersHandler(w http.ResponseWriter, r *http.Request)
- func GetTagsByMember(member string) ([]string, error)
- func GetTagsByMemberHandler(w http.ResponseWriter, r *http.Request)
- func RemoveMemberFromTagHandler(w http.ResponseWriter, r *http.Request)
- func RemoveMemberWithXdas(tagId string, member string) error
- func RemoveMembers(tagId string, members []string) error
- func RemoveMembersFromTagHandler(w http.ResponseWriter, r *http.Request)
- func RemoveMembersWithXdas(tagId string, members []string) (int, error)
- func RemovePrefixFromTag(tagId string) string
- func SetTagApiConfig(config *taggingapi_config.TaggingApiConfig)
- func SetTagPrefix(tagId string) string
- func ToEstbIfMac(member string) string
- func ToNormalized(member string) string
- func ToNormalizedEcm(member string) string
- type BucketedCursor
- type PaginatedMembersResponse
- type PaginationParams
Constants ¶
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 )
const ( DefaultPageSize = 1000 MaxPageSize = 5000 )
const ( LoggedBatch = 0 UnloggedBatch = 1 CounterBatch = 2 )
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" )
const ( Prefix = "t_" Template = "%s%s" )
Variables ¶
This section is empty.
Functions ¶
func AddMembers ¶ added in v1.0.14
func AddMembersToTagHandler ¶
func AddMembersToTagHandler(w http.ResponseWriter, r *http.Request)
AddMembersToTagHandler - Updated with bucketed implementation
func AddMembersWithXdas ¶ added in v1.0.10
AddMembersWithXdas adds members to both XDAS and Cassandra (XDAS-first approach) Returns the count of members actually stored to Cassandra.
func CheckBatchSizeExceeded ¶
func DeleteTag ¶
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 ¶
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
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 ¶
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 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
RemoveMemberWithXdas removes a single member from both XDAS and Cassandra V2
func RemoveMembers ¶ added in v1.0.14
func RemoveMembersFromTagHandler ¶
func RemoveMembersFromTagHandler(w http.ResponseWriter, r *http.Request)
RemoveMembersFromTagHandler - Updated with bucketed implementation
func RemoveMembersWithXdas ¶ added in v1.0.14
RemoveMembersWithXdas removes members from both XDAS and Cassandra (XDAS-first approach) Returns the count of members actually removed from Cassandra.
func RemovePrefixFromTag ¶
func SetTagApiConfig ¶
func SetTagApiConfig(config *taggingapi_config.TaggingApiConfig)
func SetTagPrefix ¶
func ToEstbIfMac ¶
func ToNormalized ¶
func ToNormalizedEcm ¶
Types ¶
type BucketedCursor ¶ added in v1.0.10
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)