- CloudwatchService.Stop should wait for batcher
- Add utils funcs for creating metrics data
- Add special handling deployment=test in cloudwatch service
- For dev deployments, cloudwatch service should just log to console
- Make batch queue processing optional on cloudwatch service
- Add cloudwatch service with support for batching metric data
- Update deps
- i18n.DeriveCountryFromTel shouldn't return non-country codes like '001'
- Update deps
- Add elastic.MatchAll shortcut
- Update to go 1.23
- Add basic get/put operations to dynamo service
- Add basic dynamodb service
- Move s3x package into aws folder
- Update to aws-sdk-go-v2
- Test against go 1.23
- Replace uuids.IsV4 and uuids.IsV7 with uuids.Is and uuids.Version
- Simplify mocking of now and make sequential now func thread safe
- Add support for V7 UUIDs
- Switch to google's UUID library
- Remove no longer used storage package
- Tweak s3x.BatchPut to make number of workers an arg instead of a const
- Add BatchPut and EmptyBucket functions to S3Service
- Fix s3x URL generation to not mangle slashes
- Tweak s3x.Service to make it easier to support minio
- Add new s3x package to replace storage
- Update go to 1.22
- Update deps
- Fix misuses of json.RawMessage
- Tweak dbutil.ScanJSON to work with sql.Row as well as sql.Rows
- Update deps
- Fix test
- Update date data from go-locales
- Update deps
- Update elastic query DSL syntax
- Use std library for errors
- Move elastic utils from goflow
- Allow sender id phone URNs
- Ensure that new URNs are normalized and change signaure of urns.NewFromParts to take url.Values
- Always trim whitespace on all parts of new URNs
- Tweak urns.ParseNumber so addition of a + is a fallback
- Phone URN normalization should re-parse
- Add arg to urns.ParseNumber to determine if it allows short codes
- Make phone parsing stricter
- Tweak urns.NewFromParts so scheme is a string and export the urns.Schemes slice instead of exposing via function
- Bring back auto adding of + to sufficiently long phone numbers when parsing URNs
- Add names to schemes and make urns.Schemes() return full Scheme objects
- Update deps
- Test with both go 1.21 and 1.22
- Refactor urns package
- assertdb assert methods should return bool
- Update to latest phonenumbers / protobuf
- Update to chi v5
- Allow mocked URL matching to be glob based
- Allow any comparable type for cache.Local keys
- Add a non-fetching Get, a Set and a Clear method to cache.Local
- Rename cache.Cache to cache.Local for clarity
- Add generic cache based on ttlcache and x/sync/singleflight
- Add email component to webchat URNs
- Panic if trying to close or start and already closed socket
- Fix controlled closing of websockets
- Allow cross site requests to websockets
- Add websocket functionality to httpx
- Rework support for webchat URNs, drop unused teams URNs
- Bump golang.org/x/crypto from 0.16.0 to 0.17.0
- Update deps
- Update to latest phonenumbers
- Update deps
- Tweak stringsx.Skeleton
- Update phonenumbers
- Add httpx.ParseNetworks util function
- Use error constants for some httpx error cases
- Update to go 1.21 and update deps
- Add dbutil.ScanAllJSON
- Allow creating query errors without an error to wrap
- Use i18n.Locale for date formatting
- Move some locales code from goflow/envs
- Rework syncx.Batcher so that it flushes a batch without waiting if it has enough items
- Rename dbutil.Queryer to BulkQueryer for clarity
- Use any instead of interface{}
- Add dbutil.ScanAllSlice and ScanAllMap
- Test on go 1.21
- Revert validator dep upgrade
- Update deps including phonenumbers
- Add confusables implementation to stringsx
- Storage paths shouldn't need to start with slash
- Add syncx.Batcher
- Use services for github CI
- bump golang.org/x/net from 0.5.0 to 0.7.0
- Update to latest phonenumbers
- Remove null value support functions now that nyaruka/null has been updated
- Update dependencies including phonenumbers
- Add util functions for working with nullable string types
- Update deps
- Add util function dbutil.ToValidUTF8
- Fix passing ACL to S3 puts
- Update deps including phonenumbers
- Storage types should have object permissions/acl set via constructor
- Update httpx.DetectContentType to also return extension
- Allow mock requestors to ignore localhost requests
- MockRequestor should log requests
- Time for an HTTP trace should include reading the entire body
- Use go 1.19
- Fix linter warnings
- Add httpx.BasicAuth util
- Add SantizedRequest to httpx.Trace to match SanitizedResponse
- Strip more headers from reconstructed requests
- Fix cloning of request bodies passed to httpx.NewRecorder
- Give httpx.Recorder the option to try to reconstruct the original request
- Simplify httpx.Recorder so it always dumps request first
- Use pointers to httpx.MockResponse
- Add HTTP Log support to httpx
- Tweak httpx.NewMockResponse to take a byte slice
- Tweak syncx naming and comments
- Allow use of AWS credential chain for S3 storage
- Add syncx.HashedMutexMap
- Add URN type for Teams channel
- Add dates.Since to match time.Since
- Add mock analytics backend for testing
- Update dependencies
- Fix dates.Date.Combine
- Add Slack Scheme
- Add analytics package which provides abstraction layer for librato
- Add support for db serialization to dates.Date
- Update to latest phonenumbers
- Update to go 1.18 and make dbutil.Bulk functions generic
- Tidy up scheme list to make it easier to see what is there
- CI with go 1.17 and 1.18
- Add httpx.DetectContentType which wraps functionality from github.com/gabriel-vasile/mimetype
- Fix race condition in S3Storage.BatchPut
- Remove rcache module (replace with redisx.IntervalHash) and thus broken redigo dependency
- Return QueryError if error during row iteration
- Fix IsUniqueViolation for wrapped errors
- Add dbutil package previously in mailroom
- Add URN scheme for instagram
- Make random functions threadsafe
- Allow specifying max retries for S3 clients and update client library
- HTTP traces should include number of retries made
- Build and test with go 1.17
- Update to latest phonenumbers
- Add webchat URN scheme
- Include AWS region in storage URLs
- Add support for sanitizing a response trace by stripping nulls as well as invalid UTF8
- Add Must* versions of jsonx.Marshal and jsonx.Unmarshal
- add BatchPut to storage
- add use of context for timeouts in storage
- gsm7: Fix U+000C, form feed(\f), instead of space, for 0x0A
- Use standard BCP47 (hypenated) locale codes
- Add custom date formatting code from goflow and add localization support
- Switch to go 1.16.x to get support for embed package
- Allow http mocks in JSON to use actual JSON for the body
- add option to save request immediately after creating recorder
- ParseNumber should ignore numbers which are only possible as local numbers
- Add support for IP networks in httpx.AccessConfig
- Add RocketChat scheme
- Add rcache module
- Update to latest phonenumbers
- If normalizing a number starting with a +, return it with a + if it's a possible number
- Test on 1.14.x and 1.15.x
- Use IsPossibleNumber instead of IsValidNumber
- Add gsm7 package
- Add httpx util for recording traces from http handlers
- Add uuids package from goflow
- Add storage package from mailroom
- Add discord URN type
- Move some util packages from goflow
- Bump CI go versions
- Add VK scheme
- Replace Travis with github actions
- Add urns.Parse function