Skip to content

Standardize Blobentry #1178

@Affie

Description

@Affie

Blobentry Standardization

Field Comparison Table

Old Field New Field Reason for Change
× id::Union{UUID, Nothing} (removed) REMOVE - label serves as key within parent struct
blobId::UUID blobid::UUID Standard use of capitals
label::Symbol label::Symbol No change needed
blobstore::Symbol blobstore::Symbol No change needed - matches Blobstore struct naming
hash::String Replaced with separate fields for CRC and SHA hashes
crchash::Union{UInt32, Nothing}
shahash::Union{Vector{UInt8}, Nothing}
origin::String origin::String see discussion
size::String size::Int64 Type safety
description::String description::String No change needed
mimeType::String mimetype::MIME Use built-in MIME type and standard use of capitals
metadata::String metadata::JSONText see #1105 and #1172
timestamp::ZonedDateTime timestamp::NanoDate TODO
× createdTimestamp (removed) REMOVE - see discussion
× lastUpdatedTimestamp (removed) REMOVE - see discussion
_version::VersionNumber version::VersionNumber Remove underscore prefix #1177

Key Improvements

  1. Hash Standardization: Split hash into two standardized fields - crcHash for fast error detection and shaHash for strong integrity
  2. Type Safety: Use Int64 for size instead of string representation and MIME for mime types (needs StructUtils#16)
  3. Metadata Structure: Replace base64 encoded strings with JDONText
  4. Remove DB Implementation Details: Remove id field since label serves as the key within parent structures
  5. Remove Unused Timestamps: Remove createdTimestamp and lastUpdatedTimestamp to avoid breaking serialization when we decide to use and finalise. (so not DFGv1 but v1.x)
  6. GraphQL Compatibility: Structure fields for easy GraphQL querying and JSON serialization

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions