bones_api 1.8.3 bones_api: ^1.8.3 copied to clipboard
Bones_API - A powerful API backend framework for Dart. It comes with a built-in HTTP Server, route handler, entity handler, SQL translator, and DB adapters.
1.8.3 #
-
ZoneField
:createContextZone
: added parameterzoneValues
.createSafeContextZone
:- Added named parameters
zoneSpecification
andzoneValues
- Changed
handleUncaughtError
to named parameter.
- Added named parameters
-
APIRoot
:_callZoned
:- Fix closure memory leak.
- Optimize and avoid a new closure on parameter
handleUncaughtError
for everyZone
created throughcurrentAPIRequest.createSafeContextZone
. Now using a singleZoneSpecification
instance. - Ensure that
currentAPIRequest.disposeContextZone(callZone)
is always called.
- Optimize and avoid a new closure on parameter
- Fix closure memory leak.
-
async_extension: ^1.2.14
-
test: ^1.25.14
1.8.2 #
✨♻️ Add Time
operators for addition +
and subtraction -
.
-
New
DurationToTimeExtension
:Duration
.toTime()
-
async_extension: ^1.2.13
-
reflection_factory: ^2.4.8
-
build_runner: ^2.4.14
-
test: ^1.25.13
1.8.1 #
- map_history: ^1.0.6
- shelf_letsencrypt: ^2.0.1
1.8.0 #
-
ZoneField
:_zones
: optimize usingQueue
.- Added
createSafeContextZone
(handles Uncaught Errors).
-
APIRoot
_callZoned
: usecurrentAPIRequest.createSafeContextZone
and avoid Uncaught Errors that can quit a server.
-
APIServerWorker
:_startLetsEncrypt
: allow multiple domains.letsEncrypt.startServer
:- Pass
checkCertificate: letsEncryptProduction,
- Pass
-
sdk: '>=3.5.0 <4.0.0'
-
shelf_letsencrypt: ^2.0.0
-
map_history: ^1.0.4
-
gcloud: ^0.8.18
-
lints: ^4.0.0
-
dependency_validator: ^4.1.2
-
test: ^1.25.12
-
coverage: ^1.11.1
-
build_runner: ^2.4.13
1.7.32 #
- reflection_factory: ^2.4.7
1.7.31 #
-
HTMLInput._resolveInput
: ensure thatDataTime
values are UTC. -
APIDBModule
:- Added
_addScriptFixDateTime
and_fixParametersDateTime
(used byinsert
). _writeInputTable
: id with link to theselect
route.select
:- Show entry index.
- JSON url with query parameters.
- Added
1.7.30 #
-
APITestConfigDockerDB
:- Added field
cleanContainer
.
- Added field
-
APITestConfigDockerPostgreSQL
:- Added fields
postgresPort
,maxConnections
andlogStatement
. - constructor:
super.cleanContainer
.
- Added fields
-
APITestConfigDockerMySQL
:- constructor:
super.cleanContainer
.
- constructor:
-
docker_commander: ^2.1.7
1.7.29 #
- reflection_factory: ^2.4.6
1.7.28 #
EntityAccessRules._simplified
:- Fix: Added parameter
masker
.
- Fix: Added parameter
1.7.27 #
-
EntityAccessRuleType
:- Added
mask
.
- Added
-
EntityAccessRules
:- Added field
masker
. - Added getter
cached
. - Added
hasRuleType
.
- Added field
-
gcloud: ^0.8.17
-
coverage: ^1.11.0
1.7.26 #
- reflection_factory: ^2.4.5
- gcloud: ^0.8.16
1.7.25 #
-
APISecurity
:onNewAPIToken
: added parameterrequest
.
-
yaml_writer: ^2.0.1
-
args: ^2.6.0
-
logging: ^1.3.0
-
crypto: ^3.0.6
-
path: ^1.9.1
-
coverage: ^1.10.0
1.7.24 #
-
APISecurity
:refreshAPIToken
: afterrefreshToken
and create a new token, populate permissions callinggetCredentialPermissions
.
-
gcloud: ^0.8.15
1.7.23 #
-
SQL
:- Added
copy
,isSharedDummy
, andensureNotSharedDummy
. - Fix
generateInsertRelationshipSQLs
: useensureNotSharedDummy
.
- Added
-
meta: ^1.16.0
1.7.22 #
-
APIModuleProxyHttpCaller
:- Optimize
parseResponse
. doRequest
:- Added parameter
returnType
.
- Added parameter
- Only use
responseType = 'arraybuffer'
if thereturnType
isUint8List
; otherwise, useresponseType = 'text'
.
- Optimize
-
HTMLInput
:- Added empty option for enums.
-
statistics: ^1.1.3
-
swiss_knife: ^3.2.2
-
mercury_client: ^2.2.4
-
shelf_static: ^1.1.3
-
gcloud: ^0.8.13
1.7.21 #
Time.fromBytes
:- Handle 7 bytes encoding from PostgreSQL.
1.7.20 #
Pool
:removeFromPool
: callclosePoolElement
.
1.7.19 #
Pool
:_catchFromPopulatedPool
: calldisposePoolElement
on invalid elements.
1.7.18 #
-
EntityReferenceBase
:- Added
disposeInternalHandlers
andresolve
.
- Added
-
coverage: ^1.9.1
1.7.17 #
EntityReference
:- Fix
set
fornull
value.
- Fix
1.7.16 #
-
EntityReferenceBase
:- Optimize
_resolveEntityHandler
: avoid multiplenull
resolutions. - Optimize
_resolveEntity
: avoid uncessary call toentityProvider
whenentity
andid
arenull
. - Added
resolveTypeName
: avoidtype.toString()
. - Optimize
_isInvalidEntityType
: avoid multiple==
calls.
- Optimize
-
data_serializer: ^1.2.1
-
crypto: ^3.0.5
1.7.15 #
-
ConditionSQLEncoder
:encodeConditionValuesWithOperator
: Fix encoding fornull
values to useIS NULL
andIS NOT NULL
.
-
statistics: ^1.1.2
1.7.14 #
-
APIModuleProxyHttpCaller
:isJsonResponse
: Improve logic for determining JSON response types.isByteArrayResponse
: Improve logic for determining raw bytes response types.
-
swiss_knife: ^3.2.1
1.7.13 #
-
EntityHandler
:- Added
fieldsEntityAnnotations
. - Added
fieldsWithTypeAndAnnotations
. fieldsWithEntityReference
,fieldsWithEntityReferenceList
: ensure unmodifiable.fieldsWithTypeListEntityOrReference
: do not return hidden fields (@EntityField.hidden()
).
- Added
-
sdk: '>=3.4.0 <4.0.0'
-
data_serializer: ^1.2.0
-
reflection_factory: ^2.4.4
-
statistics: ^1.1.1
-
collection: ^1.19.0
-
shelf: ^1.4.2
-
http: ^1.2.2
-
test: ^1.25.8
-
coverage: ^1.9.0
1.7.12 #
APISecurity
:resolveRequestCredentials
: callvalidateUnknownToken
to allow external tokens.
1.7.11 #
LoggerHandler
: optimizelogBuffered
.
1.7.10 #
-
APIToken
,APICredential
: added fieldrefreshToken
. -
APISecurity
:- Added
onNewAPIToken
,validateUnknownToken
,validateRefreshToken
.
- Added
-
shared_map: ^1.1.9
-
reflection_factory: ^2.4.3
1.7.9 #
-
EntityHandlerProvider
:- Optimize
_getEntityHandlerImpl
.
- Optimize
-
ClassReflectionEntityHandler
:- Optimize
copy
.
- Optimize
-
DBEntityRepository
:- Optimize
hasReferencedEntities
.
- Optimize
-
EntityResolutionRules
:- Added:
isAnyEagerEntityType
,isAnyEagerEntityTypeInfo
,isAnyLazyEntityType
,isAnyLazyEntityTypeInfo
.
- Added:
-
EntityReference
- Added
fromEntityInstantiator
andhasEntity
.
- Added
-
New
EntityInstantiator
andEntityInstantiatorHandler
. -
EntityHandler
:- Added
getIDFromMap
andtoEntitiesMapByIdMap
.
- Added
-
EntityRepository
: addedgetEntityMapID
. -
Time
: set all fieldsfinal
. -
APIResponse
: added metricAPI-response-json
. -
reflection_factory: ^2.4.2
1.7.8 #
DBSQLMemoryAdapter
:_selectEntries
: add support forlimit
.
1.7.7 #
EntityHandler
:_resolveValueAsUInt8List
: handlehex:
andbase64:
prefixed data.
1.7.6 #
-
EntityHandler
:- Added
getIDs
.
- Added
-
EntitySource
,EntityRepository
:- Added
existIDs
,selectIDsBy
andselectIDsByQuery
.
- Added
-
DBRelationalAdapter
:- Added
parseIDs
.
- Added
1.7.5 #
-
New
IterableEntityReferenceExtension
andIterableEntityReferenceListExtension
. -
EntityReference
: addedidAsInt
andidNotNullAsInt
. -
EntityReferenceList
: addedidsAsInt
andidsNotNullAsInt
.
1.7.4 #
TimedMap
:- Added keyTimeoutChecker
1.7.3 #
MapAsCacheExtension
:- Added
getIfCached
. - Exposed
checkCachedEntry
.
- Added
1.7.2 #
-
New
MapOfCachesExtension
andRecordExtension
. -
reflection_factory: ^2.4.0
-
docker_commander: ^2.1.6
-
meta: ^1.15.0
-
archive: ^3.5.1
-
build_runner: ^2.4.10
-
test: ^1.25.5
-
coverage: ^1.8.0
1.7.1 #
DBPostgreSQLAdapter
:- Fix
_parseConstraint
for enums with single values.
- Fix
1.7.0 #
-
ConditionParameter
:- Added
contextKeyPosition
with the parameters position of the key. getValue
: improve key and index resolution.- 💥 Breaking Change:
contextPosition
: the index is now resolved using all parameters, not only the positional ones.- Now
baz
will resolvecontextPosition
as2
and not1
:foo == ? || bar == ?:x || baz == ?
- Now
- Added
-
args: ^2.5.0
-
meta: ^1.14.0
-
googleapis_auth: ^1.6.0
-
test: ^1.25.3
1.6.15 #
-
APIModuleProxyTargetResolver
: added parametererrorHandler
. -
APIModuleProxyCaller.resolveTarget
: added parametererrorHandler
. -
APIModuleProxyDirectCaller
andAPIModuleProxyHttpCaller
:- Added field
errorHandler
. - Added static field
defaultErrorHandler
.
- Added field
-
APIModuleProxyCallerListener
- Added static field
defaultErrorHandler
.
- Added static field
-
APIModuleProxyCallerResponseError
:- Added fields:
request
,responseStatus
,module
,methodName
andparameters
.
- Added fields:
-
Removed deprecated
APIModuleHttpProxy
(useAPIModuleProxyHttpCaller
).
1.6.14 #
APIToken
: fix the constructor initialization of fieldduration
.
1.6.13 #
-
Condition
: addedisIDCondition
-
DBSQLMemoryAdapter
: optimize_selectEntries
forCondition
s that only depends on IDs.
1.6.12 #
LoggerHandler
:- Added
isLoggingAll
andisLoggingDB
. - Optimize
parent
,rootLogger
androot
.
- Added
1.6.11 #
-
TableScheme
: optimizegetFieldReferencedTable
. -
DBSQLMemoryAdapter
:- optimize
_resolveEntityMap
and_resolveEntityFieldRelationshipTable
.
- optimize
-
APIServerConfig
: addedlogQueue
. -
EntityRepository
:_storeAllFromJsonImpl
: optimize loading of entities from JSON (split in blocks of 100 entries per store).
1.6.10 #
- reflection_factory: ^2.3.4
1.6.9 #
-
ClassReflectionEntityHandler
:getFields
: callreflection.getJsonFieldsVisibleValues
(avoid issues withJsonHidden.fields
).
-
reflection_factory: ^2.3.3
1.6.8 #
-
LoggerHandler
:- Added
useLogQueue
,disableLogQueue
andenableLogQueue
.
- Added
-
New
APIModuleProxyCallerError
:- Implemented by
APIModuleProxyCallerResponseError
.
- Implemented by
-
APIModuleProxyDirectCaller
:- Throw
APIModuleProxyCallerResponseError
forAPIResponse
s withERROR
status.
- Throw
-
APIModuleProxyHttpCaller
:- Throw
APIModuleProxyCallerResponseError
for errorHttpResponse
s.
- Throw
-
Optimize
DBAdapter
andDBEntityRepository
. -
async_extension: ^1.2.12
-
mercury_client: ^2.2.2
-
async_extension: ^1.2.9
-
googleapis_auth: ^1.5.1
-
build_runner: ^2.4.9
1.6.7 #
-
EntityHandler
: addednormalizeID
andnormalizeIDs
. -
EntityReference.fromID
: use_normalizeID
. -
EntityReferenceList.fromIDs
: use_normalizeIDs
.
1.6.6 #
-
APIServerConfig
:- Added field
development
andserverResponseDelay
. - Added option
server-response-delay
.
- Added field
-
APISecurity
:- Fixed
disposeAuthenticationData
. - Added
disposeAuthenticationToken
.
- Fixed
-
APITokenStore
:- Added
removeTokenData
.
- Added
1.6.5 #
-
EntityAccessRules
:- Fix
toJsonEncodable
to allow rules to be applied to sub-entities.
- Fix
-
APIResponse
extension onFuture
andFutureOr
:- Added
payloadAsyncOr
.
- Added
-
LoggerHandler
:flushMessages
: added parameterdelay
.
-
async_extension: ^1.2.7
-
reflection_factory: ^2.3.1
-
postgres: ^2.6.4
-
googleapis_auth: ^1.5.0
1.6.4 #
-
EntityReference
:- Added
idNotNull
,idAs
andidNotNullAs
- Added
-
EntityReferenceList
:- Added
idsAs
andidsNotNullAs
.
- Added
-
LoggerHandler
:- Added
flushMessages
.
- Added
-
APIServer
andAPIServerWorker
:_startImpl
: callflushMessages
before return.
1.6.3 #
APIServer
: allow return ofList<int>
as JSON.
1.6.2 #
-
DBEntityRepository
:- Optimize
_resolveRelationshipFields
.
- Optimize
-
LoggerHandlerIO
:printMessage
: add a message queue for printing log messages asynchronously.
-
http: ^1.2.1
1.6.1 #
-
statistics: ^1.1.0
-
swiss_knife: ^3.2.0
-
shared_map: ^1.1.8
-
mercury_client: ^2.2.1
-
meta: ^1.12.0
-
logging: ^1.2.0
-
mime: ^1.0.5
-
gcloud: ^0.8.12
-
path: ^1.9.0
-
archive: ^3.4.10
-
http: ^1.2.0
-
build_runner: ^2.4.8
-
test: ^1.25.2
1.6.0 #
Dart 3.3.0 compatibility.
-
sdk: '>=3.3.0 <4.0.0'
-
data_serializer: ^1.1.0
-
yaml_writer: ^2.0.0
-
project_template: ^1.1.0
-
hotreloader: ^4.2.0
1.5.28 #
-
ClassReflectionEntityHandler.getFields
: optimize usingreflection.getFieldsValues
. -
async_events: ^1.1.0
-
reflection_factory: ^2.3.0
1.5.27 #
SQLGenerator
:- Added
generateAddUniqueConstraintAlterTableSQL
.
- Added
DBSQLAdapter
:_checkDBTablesImpl
: Added check formissingReferenceConstraintsSQLs
,missingUniqueConstraintsSQLs
andmissingEnumConstraintsSQLs
.
- New
TableUniqueConstraint
. EntityHandler
:- Added
getFieldsEnumTypes
,getFieldsEntityTypes
andgetAllFieldsWithEntityAnnotation
.
- Added
- New
DBException
andTransactionErrorResolver
. DBAdapterException
:- Added field
previousError
.
- Added field
DBPostgreSQLAdapter
:resolveError
: passpreviousError
.
- New
RecursiveToString
. - Add
RecursiveToString
interface toEntityFieldInvalid
andTransactionOperation
.
1.5.26 #
DBSQLMemoryAdapter
:- Added index for relationship tables.
InitializationStatus
:- Added fields
_initializingTime
and_initializedTime
. - Logging initialization time.
- Added fields
1.5.25 #
- Fix
DBPostgreSQLAdapter._parseConstraint
.
1.5.24 #
APIModuleProxyCallerListener
: fixresolveResponse
fornull
response.
1.5.23 #
-
EntityAccessRules
:- Added
toJsonEncodable
(moved fromAPIServer
).
- Added
-
New
APIModuleProxyCallerListener
base class. -
APIModuleProxyDirectCaller
:- Added
responsesAsJson
. - Now capable to simulate a JSON serialization/deserialization for unit tests.
- Added
-
reflection_factory: ^2.2.8
1.5.22 #
DBAdapterCapability
:- Added
constraintSupport
.
- Added
TableScheme
:- Added
constraints
.
- Added
- New
TableConstraint
,TablePrimaryKeyConstraint
andTableEnumConstraint
. SQLGenerator
:- Added
generateAddEnumConstraintAlterTableSQL
.
- Added
MapAsCacheExtension
:- Added internal
_checkCachedEntry
to handleTimedMap.checkEntry
.
- Added internal
1.5.21 #
APIRouteBuilder
:_resolveRequestParameterValueAsBytes
: allowhex:...
format.
1.5.20 #
- Better error message for null
getRepositoryAdapterByTableName
andgetEntityRepositoryByType
.
1.5.19 #
-
New
DateTimeToTimeExtension
:- New
toTime
.
- New
-
reflection_factory: ^2.2.7
-
coverage: ^1.7.2
1.5.18 #
- shelf_gzip: ^4.1.0
1.5.17 #
APIServerWorker
:- Improve error 500 logging.
1.5.16 #
APIServer
:- added
resolveBodySync
-APIRequest
,APIResponse
andTransaction
. - Added
disposeAsync
.
- added
APIServerWorker
:_processAPIResponse
: optimizeResponse
resolution.- Call
APIResponse.disposeAsync
instead of.dispose
.
1.5.15 #
-APIRequest
, APIResponse
and Transaction
.
- Added
dispose
. APIServerWorker._processAPIResponse
: callAPIResponse.dispose
.
1.5.14 #
DBMySQLAdapter
andDBPostgreSQLAdapter
:- Add finalizer to ensure that the DB connection is closed when the wrapper is collected.
- Fix ˜KeyConditionNotIN`.
1.5.13 #
LoggerHandlerIO
:- Added
APIPlatform
properties:bones_api.log.max_file_length
,bones_api.log.max_rotation_files
.
- Added
LogFileRotate
:- Optimize
needRotation
.
- Optimize
APIPlatform
:- Added
getPropertyAs
,propertiesKeys
,setProperty
andapplyProperties
.
- Added
DBAdapter
:isConnectionValid
: added parametercheckUsage
.
1.5.12 #
APIServerConfig
:- Added properties:
cacheStaticFilesResponses
,staticFilesCacheMaxMemorySize
andstaticFilesCacheMaxContentLength
.
- Added properties:
APIConfig
:getAs
andgetPath
: also tries to parse the value to the returned type.
1.5.11 #
- New
APIServerResponseCache
.
1.5.10 #
-
printZoneError
: reduce print calls. -
shared_map: ^1.1.7
-
petitparser: ^6.0.2
1.5.9 #
- reflection_factory: ^2.2.5
- shared_map: ^1.1.6
1.5.8 #
EntityHandler
:- Added
_resolveTransaction
: improve currentTransaction
resolution.
- Added
DBSQLMemoryAdapter
:- Using
catchFromPool
/releaseIntoPool
to simulate connection/context usage and indicate heavy use of connections in tests.
- Using
1.5.7 #
SQLGenerator
:generateCreateTableSQL
: fixCONSTRAINT
of fields withEntityReference
.
1.5.6 #
APIRepository
:- Expose
countByQuery
.
- Expose
1.5.5 #
- lints: ^3.0.0
- Apply new lints fixes.
- shared_map: ^1.1.5
1.5.4 #
-
APISecurity
:- Ensure that
_sessionSet
(APISessionSet
) is using_sharedStoreField
.
- Ensure that
-
APITokenStore
:- Also call
_resolveSharedTokensByUsername
from constructor, to fully pre-initialize it.
- Also call
-
shared_map: ^1.1.4
1.5.3 #
- shared_map: ^1.1.1
1.5.2 #
APIServerConfig
:- Fix
name
andversion
resolution
- Fix
1.5.1 #
-
new
APIServerConfig
:- Holds the configuration need for
APIServer
andAPIServerWorker
. - Can be created from command-line arguments or a JSON object.
- Holds the configuration need for
-
Created an abstract base class
_APIServerBase
forAPIServer
andAPIServerWorker
.start
andstop
methods, delegating tostartImpl
andstopImpl
.- Add a new boolean property
isStarting
to determine if the server is in the process of starting.
-
APIServer
- Support for spawning auxiliary workers in separate isolates when needed.
- Starting and stopping of auxiliary
APIServerWorker
instances using isolates. Main worker starts normally.
-
New
APIServerWorker
to handle multi-workerAPIServer
.- Add
_processWhileInitializing
to handle API requests while the server is still initializing, including a timeout for initialization.
- Add
-
APIRequest
:- Can also handle metrics.
- Added
transactions
field, automatically populated with all theTransactions
of the request.
-
APIRequest
andAPIResponse
:- Improved metrics: added
description
parameter. - Added
Transaction
s duration toServer-Timing
.
- Improved metrics: added
-
APIRoot:
- Added
isIsolateCopy
.
- Added
-
DBAdapterCapability
:- Added
multiIsolateSupport
;
- Added
-
DBAdapter
- Added
auxiliaryMode
andenableAuxiliaryMode
. DBSQLMemoryAdapter
andDBObjectMemoryAdapter
don't supportauxiliaryMode
, since they don't supportmultiIsolateSupport
.
- Added
-
SQLGenerator.generateCreateTableSQL
: skip annotated hidden fields. -
APISessionSet
: usingSharedStoreField
andSharedMapField
to store the the sessions. -
New
APITokenStore
:- Shared tokens among
Isolate
s.
- Shared tokens among
-
shared_map: ^1.0.10
-
args_simple: ^1.1.0
-
coverage: ^1.7.1
-
vm_service: ^13.0.0
1.5.0 #
-
sdk: '>=3.2.0 <4.0.0'
- Simple workaround for Kernel/Fasta issue https://github.com/dart-lang/sdk/issues/54062
-
reflection_factory: ^2.2.4
1.4.37 #
DBObjectGCSAdapter
:- Fix cached file parent directory creation.
1.4.36 #
-
APIConfig
: fix resolution of variables keys. -
DBAdapter
:- Added parameter
populateSourceVariables
: allow variables in populate source.
- Added parameter
-
Improved related tests.
-
data_serializer: ^1.0.12
-
hotreloader: ^4.1.0
1.4.35 #
DBSQLMemoryAdapter._findFieldsReferencedTables
: Fix referenced field name.
1.4.34 #
APIConfig
: added fieldtest
.DBSQLMemoryAdapter
:- Fix
_findFieldsReferencedTables
:- Normalize entity field to table column name.
- Fix
DBSQLAdapter
:- Fix
_checkDBTableScheme
:- Normalize entity field to table column name.
- Fix
checkDBTableField
:- Allow
EntityReferenceList
fields.
- Allow
- Fix
1.4.33 #
EntityReferenceBase
: addedisNotNull
.- New
NullEntityReferenceBaseExtension
andNullEntityReferenceExtension
. - meta: ^1.11.0
- hotreloader: ^4.0.0
- archive: ^3.4.6
1.4.32 #
APIModuleProxy
: addedignoreMethods
.- reflection_factory: ^2.2.3
1.4.31 #
-
Added
EntityHandler.constructors
. -
EntityHandler._createFromMapDefaultImpl
: improveUnsupportedError
message. -
statistics: ^1.0.26
-
data_serializer: ^1.0.11
-
docker_commander: ^2.1.5
-
postgres: ^2.6.3
-
archive: ^3.4.5
-
collection: ^1.18.0
-
dependency_validator: ^3.2.3
-
coverage: ^1.6.4
-
test: ^1.24.7
1.4.30 #
-
EntityResolutionRules
:- New factory constructor
fetchTypes
.
- New factory constructor
-
docker_commander: ^2.1.2
1.4.29 #
-
New abstract class
DBConnectionWrapper
:- Implementations
DBMySqlConnectionWrapper
andPostgreSQLConnectionWrapper
.
- Implementations
-
Pool
- Added
createPoolElementForced
(non-nullable). _catchFromPopulatedPool
: now can return null.
- Added
-
DBAdapter
:- New
connectionInactivityLimit
. isConnectionValid
:MySQL
andPostgreSQL
: checkingconnection.isInactive
.
- New
-
Using
Graph
to resolve the correct order ofCreateTableSQL
and to populate samples. -
Checking
SQLBuilder
order and warning invalid orders. -
EntityReferenceList.fromJson
:- Fix issue with some entities null in the JSON.
-
APIRouteBuilder._apiMethodInvocation
:- Check if returned value is a
FutureOr<APIResponse>
or return anAPIResponse.error
.
- Check if returned value is a
-
graph_explorer: ^1.0.2
-
ascii_art_tree: ^1.0.6
-
docker_commander: ^2.1.1
-
petitparser: ^6.0.1
-
archive: ^3.3.9
1.4.28 #
-
getTableScheme
,getTableSchemeImpl
andgetTableSchemeForEntityRepository
:- Added optional
contextID
parameter to allow multiple calls with the samecontextID
to share internal caches.
- Added optional
-
DBMySQLAdapter
andDBPostgreSQLAdapter
:- Optimize
getTableScheme
andgetRepositoriesSchemes
with use ofcontextID
and internal shared caches.
- Optimize
-
async_extension: ^1.2.5
1.4.27 #
DBSQLAdapter
:_checkDBTableScheme
: ignore fields annotated withEntityField.hidden
.
- reflection_factory: ^2.2.1
- mercury_client: ^2.2.0
- archive: ^3.3.8
1.4.26 #
APIServer
:- Integrate
LetsEncrypt
logger withAPIServer
logger.
- Integrate
- shelf_letsencrypt: ^1.2.2
- dart_spawner: ^1.1.0
- vm_service: ^11.10.0
1.4.25 #
SQLBuilderListExtension
:bestOrder
: fix dependencies order of table relationships.
EntityRepositoryProviderExtension
:storeAllFromJson
: store byallRepositories
orders.
1.4.24 #
- async_extension: ^1.2.3
- docker_commander: ^2.1.0
1.4.23 #
-
New
FutureOrAPIResponseExtension
andFutureAPIResponseExtension
. -
async_extension: ^1.2.2
-
reflection_factory: ^2.2.0
1.4.22 #
-
APIServer
:_resolvePayload
:- Better resolution of
MimeType
whencontent-type
header is not provided. - String
MimeType
s: usecharsetEncoding
to decode theString
. - Optimize load of payload bytes as
Uint8List
.
- Better resolution of
-
async_extension: ^1.2.0
-
data_serializer: ^1.0.10
-
gcloud: ^0.8.11
-
test: ^1.24.6
-
vm_service: ^11.9.0
1.4.21 #
-
ConditionSQLEncoder
:resolveValueToCompatibleType
: forceDateTime.toUtc()
to avoid DB adapter issues.
-
Transaction
- Added
waitOperation
.- Added
timeout
parameter.
- Added
- Added
-
EntityRepository
:ensureStored
implementations (DBRelationalEntityRepository
,DBEntityRepository
,IterableEntityRepository
):- Avoid multiple
store
of the same entity in the same [Transaction].- Fix issue with unique fields.
- Throws
RecursiveRelationshipLoopError
if a loop is detected.
- Avoid multiple
-
EntityFieldInvalid
:- Added field
operation
.
- Added field
-
Added missing
APIRequestMethod.HEAD
. -
EntityHandler
:- Avoid recursive loop call to
_validateFieldValueImpl
.
- Avoid recursive loop call to
-
APIDBModule
:- select: sort entities by id.
- update: fix enum selected option (
HTMLInput
).
-
LogFileRotate
:- Fix
needRotation
for a log file not created yet.
- Fix
-
async_events: ^1.0.12
-
stream_channel: ^2.1.2
-
gcloud: ^0.8.10
-
postgres: ^2.6.2
-
petitparser: ^5.4.0
1.4.20 #
-
ConditionElement
:- Added field
parent
. - Added
isInner
.
- Added field
-
EncodingContext
:resolveEntityAlias
:- Better alias naming for
_ref
and_rel
tables. - Better naming for long names.
- Better alias naming for
-
DBRelationalEntityRepository._getCachedEntitiesRelationships
:- Fix issue with
EntityReferenceList
andEntityReference
values.
- Fix issue with
-
New
LogFileRotate
(used by default when logging to files). -
APIServer
: logResponse.internalServerError
(error 500 responses) as severe. -
shelf_letsencrypt: ^1.2.1
-
http: ^1.1.0
1.4.19 #
- Update
bones_api_template.tar.gz
.
1.4.18 #
ConditionEncoder
:encodeEncodingValueList
: fix SQL encoding of empty list as( null )
and not( )
.
1.4.17 #
logErrorMessage
andlogDBMessage
: fix resolution ofMessageLogger
.
1.4.16 #
- API Config:
- Allow
log.all
,log.error
andlog.db
to files.
- Allow
DBAdapter
:- Better
boot
hierarchy. registerAsDbLogger
loggers of implementations ofDBAdapter
.
- Better
LoggerHandler
:- Added
resolveLogDestiny
andlogBuffered
.
- Added
DBAdapterException
:- Added field
operation
.
- Added field
1.4.15 #
SQLBuilderListExtension
:- Optimize
bestOrder
:- Use internal Quick Sort algorithm for better pivot selection (producing a better order of elements).
- Optimize
1.4.14 #
-
APIRouteBuilder.apiMethod
:- Ignores framework methods from
APIModule
that could be interpreted as routes.
- Ignores framework methods from
-
SQLBuilder
:- Added
mainTable
getter.- Used for better sorting using table name (
sorteByName
).
- Used for better sorting using table name (
- Added
-
resource_portable: ^3.1.0
-
collection: ^1.17.2
-
test: ^1.24.4
-
vm_service: ^11.8.0
1.4.13 #
Initializable._finalizeInitializationWithDeps
:- When finalizing root
Initializable
: wait for still initializing dependencies.
- When finalizing root
- Fix
InitializationChain._completeCircularDependency
:- Check if
Completer
is already completed before callcomplete
.
- Check if
- build_runner: ^2.4.6
1.4.12 #
- Fix
GroupConditionOR.cast
. ConditionSQLEncoder.keyFieldReferenceToSQL
: throw exception when a field can't by found in table.
1.4.11 #
- Added
APIModuleProxyCaller
andAPIModuleProxyDirectCaller
. - Rename
APIModuleHttpProxy
toAPIModuleProxyHttpCaller
. - reflection_factory: ^2.1.6
1.4.10 #
-
Added
StringUtils.toLowerCaseSimpleCached
. -
Optimize
Json.defaultFieldNameResolver
. -
Optimize
FieldsFromMap.getFieldsValuesFromMap
. -
async_extension: ^1.1.1
-
reflection_factory: ^2.1.4
1.4.9 #
-
New
WeakList
. -
Added
DBAdapter.instances
. -
Transaction
:_onErrorZoneUncaughtError
: get theerror
'sTransaction
and pass it toprintZoneError
as message.- Added
Transaction.openInstances
. - Added
canPropagate
to indicated that aTransaction
can have multiple operations. - Added
initTime
,endTime
andduration
getters. - Log slow and long transactions.
_onExecutionError
: only logs and rethrows the error in the 1st error notification._abortImpl
:- call
_transactionCompleter.complete
instead ofcompleteError
to avoid issues with hidden errorZone
.
- call
-
TransactionOperation
:- Added
initTime
,endTime
andduration
getters.
- Added
-
TransactionAbortedError
:- Renamed
abortError
toerror
. - Renamed
abortStackTrace
toerrorStackTrace
.
- Renamed
-
Added
APIRouteConfig
. -
APIRouteHandler.call
: log response time. -
DBMySQLAdapter
andDBPostgreSQLAdapter
.- Allow
minConnections
andmaxConnections
from config. getTableSchemeImpl
andgetTableFieldsTypesImpl
: fixreleaseIntoPool
anddisposePoolElement
behavior.
- Allow
-
DBEntityRepository
: optimize_getRelationshipFields
. -
DBAdapter
:- added
isTransactionWithSingleOperation
. - Fix
executeTransactionOperation
: identify single operation transactions. - Fix
createPoolElement
: respectmaxConnections
with correctpoolAliveElementsSize
calculation. - Added
cancelTransactionResultWithError,
throwTransactionResultWithErrorand
resolveTransactionResult`.- Used by
openTransaction
result resolution.
- Used by
- added
-
Pool
:- Fix
poolDisposedElementsCount
to also count_invalidatedElementsCount
. - Fix
_catchFromEmptyPool
:- allow
createPoolElement(force: true)
if reached the limit and can't catch a reused element.
- allow
- Fix
-
InitializationStatus
:- New
finalizing
status.
- New
-
InitializationChain
:- Fix
_isParent
- Avoid analyzing dependencies of
initializable
if it exists in the parent's tree.
- Avoid analyzing dependencies of
- Fix
-
Initializable
_doInitializationImpl
: allow circular initialization with timeout.
-
lints: ^2.1.1
-
build_runner: ^2.4.5
1.4.8 #
-
DBEntityRepository
_resolveEntitiesSubEntities
: fix passing of parameterresolutionRules
on special case.
-
args: ^2.4.2
1.4.7 #
APIServer
:_redirectToHttpsMiddleware
: do not redirect/.well-known/acme-challenge/
paths.
- sdk: '>=3.0.0 <4.0.0'
- collection: ^1.17.1
- googleapis_auth: ^1.4.1
- shelf_letsencrypt: ^1.2.0
- lints: ^2.1.0
1.4.6 #
ConditionEncoder
:- Fix
_resolveValueToTypeImpl
:- Convert
Enum
values toString
callingEnum.name
. - Convert
Enum
values toint|num|BigInt
callingEnum.index
.
- Convert
- Fix
- reflection_factory: ^2.1.3
1.4.5 #
DBSQLAdapter
:- Now checks for missing reference columns.
- Suggest
ALTER TABLE
with CONSTRAINTs.
SQLGenerator
:generateAddColumnAlterTableSQL
:- Handle enums and references.
- Generate CONSTRAINTs for
FOREIGN KEY
andUNIQUE
.
1.4.4 #
AlterTableSQL
:- Added
indexes
. buildSQL
: implementifNotExists
forADD COLUMN
.
- Added
SQLGenerator
:- Added
generateAddColumnAlterTableSQL
.
- Added
DBSQLAdapter
:checkDBTables
:- Now prints in the log a suggestion of
ALTER TABLE
SQLs to fix missing table columns.
- Now prints in the log a suggestion of
- args: ^2.4.1
- crypto: ^3.0.3
- gcloud: ^0.8.8
- http: ^0.13.6
- shelf: ^1.4.1
- shelf_static: ^1.1.2
- yaml: ^3.1.2
1.4.3 #
DBAdapter
:- Added
checkDB
: checks DB tables and fields.- Moved call to
generateTables
tocheckDB
.
- Moved call to
createPoolElement
: optimize calls tocreateConnection
when creating multiple connections simultaneously.
- Added
FieldsFromMap
:- Added
getFieldsKeysInMap
.
- Added
TableScheme
:- Added
relationshipTables
.
- Added
EntityHandler
:- Fix
valueToDynamicNumber
forDateTime
types.
- Fix
- Added
APIEntityTypeNullableExtension
to avoid resolution toAPIEntityObjectExtension
onType?
variables. SQLBuilder
: added logger and messages.DBMySQLAdapter
:- Decode
TIME
SQL type asTime
class.
- Decode
- sdk: '>=2.18.0 <4.0.0'
1.4.2 #
Json
:- Fix
_jsonEncodableProvider
: do not useEntityHandler
if there's a registeredClassReflection
.
- Fix
APIServer
:- Fix
_toJsonEncodableAccessRules
when there's anEntityAccessRules
for an entity but there's no encodable function.
- Fix
1.4.1 #
APIModuleHttpProxy
:- Force
POST
request if any parameter is aList
orMap
.
- Force
APIRouteBuilder.resolveValueByType
:- Renamed:
_resolveValueType
toresolveValueByType
- Exposed and static.
- Fix parsing of typed
List
,Set
andMap
parameters. - Improved tests.
- Renamed:
- reflection_factory: ^2.1.2
1.4.0 #
- reflection_factory: ^2.1.0
1.3.69 #
APIAuthentication
:- Added
_credential
field to allow return (byget credential
) of theAPICredential
instance used in the authentication process.
- Added
1.3.68 #
APISecurity
:- Added
authenticateMultiple
for when the request has anAPICredential
and also a payload with credential.
- Added
APICredential
:- Added
originalCredential
field. - Added
APICredential.fromMap
andcheckCredential
.
- Added
APIDBModule
: Addedcredential
support.- async_events: ^1.0.11
- test: ^1.24.1
1.3.67 #
Time.toString
:- Fix
withSeconds
parameter.
- Fix
- Added
Time.copyWith
.
1.3.66 #
- reflection_factory: ^2.0.7
- hotreloader: ^3.0.6
- statistics: ^1.0.25
- petitparser: ^5.3.0
- meta: ^1.9.1
1.3.65 #
decodeQueryStringParameters
:- Added parameter
charset
.
- Added parameter
- swiss_knife: ^3.1.5
- resource_portable: ^3.0.2
- archive: ^3.3.7
1.3.64 #
APIRoot
:- Added
loadDependencies
.
- Added
1.3.63 #
- New
HTMLDocument
. APIDBModule
:- Added insert & update support.
- Added delete operation.
- Added UI (HTML).
EntityHandler
:- Added
resolveIDs
. - Improve
resolveValueByType
.
- Added
- reflection_factory: ^2.0.6
1.3.62 #
EntityReferenceList
:- Fix
add
.
- Fix
1.3.61 #
- Added
CreateIndexSQL
. EntityField
:- Added
_indexed
andisIndexed
. - Added constructor
EntityField.indexed()
.
- Added
DBSQLAdapter
:- Added getter
entityRepositoriesBuildOrder
.
- Added getter
DBAdapter
:allRepositories
:- Use
entityRepositoriesBuildOrder
to return the repositores in the build order.
- Use
APIDBModule
:tables
: list repositories ordered by name.dump
: list repositories in build order to allow use of the dump to populate a DB.
1.3.60 #
ConditionEncoder
:- Fix queries using values of type
Decimal
orDynamicInt
.
- Fix queries using values of type
ConditionSQLEncoder
:- Handle
Decimal
asdouble
. - Handle
DynamicInt
asBigInt
.
- Handle
1.3.59 #
DBObjectGCSAdapter
:- Fix call to
bucket.info
: replace with_getObjectInfo
& try/catch.
- Fix call to
1.3.58 #
- New
DBObjectGCSAdapter
. - New library:
bones_api_db_gcp.dart
. DBObjectDirectoryAdapter
: clean code.DBEntityRepositoryProvider
:- Added
requiredAdapters
andrequiredEntityRepositoryProviders
:- Used by
initializeDependencies
.
- Used by
- Added
- reflection_factory: ^2.0.5
- http: ^0.13.5
- googleapis_auth: ^1.4.0
- crclib: ^3.0.0
1.3.57 #
- New
DBObjectAdapter
:- Base class for
DBObjectMemoryAdapter
andDBObjectDirectoryAdapter
.
- Base class for
- New
DBAdapterRegister
:- handles
DBAdapter
registration, avoiding repetitive static code inDBSQLAdapter
,DBObjectAdapter
andDBRelationalAdapter
.
- handles
EntityHandler
- Added
equalsValuesEntityMap
. - Added
getEntityIDFrom
. equalsValuesEntity
now also usingequalsValuesEntityMap
.- This fixes an issue for
DBSQLMemoryAdapter
.
- This fixes an issue for
- Added
1.3.56 #
EntityReference
:disposeEntities
: force_resolveID
before dispose.
EntityReferenceList
:disposeEntities
: force_resolveIDs
before dispose.
APIRouteBuilder
:_resolveValueType
: resulveList
,Set
,Map
generic types.
1.3.55 #
APIResponseStatus
- Added
REDIRECT
: to perform URL/Location redirects.
- Added
1.3.54 #
DBObjectDirectoryAdapter
:_normalizeID
: ensure safe ID forFile
path.
EntityReferenceBase
:- Improve
_getEntityID
: allow use ofdynamic.id
if there's notEntityHandler
.
- Improve
1.3.53 #
- petitparser: ^5.2.0
- postgres: ^2.6.1
1.3.52 #
- Renamed
DBMemorySQLAdapter
toDBSQLMemoryAdapter
.- Renamed
DBMemorySQLAdapterException
toDBSQLMemoryAdapterException
.
- Renamed
DBSQLMemoryAdapter
:name
changed to "sql.memory".DBObjectMemoryAdapter
:name
changed to "object.memory".DBMySQLAdapter
: added alias "sql.mysql".DBPostgreSQLAdapter
: added alias "sql.postgresql".- New
DBObjectDirectoryAdapter
. EntityHandler
:- Fix
_resolveValueByEntityHandler
for whenentityRepositoryProvider
isnull
.
- Fix
DBAdapter
:- Added
onClose
.
- Added
1.3.51 #
- Renamed
DBMemoryObjectAdapter
toDBObjectMemoryAdapter
.- Renamed
DBMemoryObjectAdapterException
toDBObjectMemoryAdapterException
.
- Renamed
1.3.50 #
APIServer
:- Added
allowRequestLetsEncryptCertificate
.
- Added
- shelf_letsencrypt: ^1.1.1
1.3.49 #
EntityHandler
:- Optimize
isValidEntityType
.
- Optimize
APIToken
:- Optimize
generateToken
.
- Optimize
IterableEntityRepositoryProviderExtension
:getEntityRepository
: added parameterremoveClosedProviders
.
- reflection_factory: ^2.0.4
1.3.48 #
APIConfig
:- Added
getAsMap
,getAsList
,getAs
.
- Added
- Added
WithRuntimeTypeNameSafe
. - Added
ExtensionRuntimeTypeNameUnsafe
:runtimeTypeNameUnsafe
- Added linter rules:
avoid_dynamic_calls
.avoid_type_to_string
.no_runtimeType_toString
.discarded_futures
.no_adjacent_strings_in_list
.
1.3.47 #
- Improve internal use of
EntityCache
. EntityReferenceBase
:- Added
_entityCache
.
- Added
- Optimize
_InitializationChain._isParent
. APIModuleHttpProxy
:onCall
: usingJson.decoder
withEntityHandlerProvider.globalProvider
.
Json
:- Added
decoder
.
- Added
- reflection_factory: ^2.0.3
1.3.46 #
Json.defaultFieldValueResolver
:- Improve resolution of
EntityReference
and ``.
- Improve resolution of
- reflection_factory: ^2.0.1
1.3.45 #
KeyCondition
: added support to>
,>=
,<
and<=
operators.KeyConditionGreaterThan
,KeyConditionGreaterThanOrEqual
.KeyConditionLessThan
,KeyConditionLessThanOrEqual
.
EntityHandler.createFromMap
: added parameterjsonDecoder
.
1.3.44 #
APIRouteRule
:- Adde properties
globalRules
andnoGlobalRules
.
- Adde properties
- archive: ^3.3.6
- args: ^2.4.0
1.3.43 #
- Added
APIEntityRules
.
1.3.42 #
- New
APIEntityAccessRules
,EntityAccessRules
,EntityAccessRulesCached
andEntityAccessRulesContext
: - Renamed
MergeEntityResolutionRulesError
toMergeEntityRulesError
. - Renamed
ValidateEntityResolutionRulesError
toValidateEntityRulesError
. EntityAccessRules
andEntityResolutionRules
now extendsEntityRules
.APIRouteHandler
:- Added
entityAccessRules
. - Optimize
entityResolutionRules
.
- Added
APIResponse
:- Added field
apiRequest
.
- Added field
EntityReferenceBase
:toJson
: added parameterjsonEncoder
.- Fixes some to JSON issues, preserving the parent
jsonEncoder
.
- Fixes some to JSON issues, preserving the parent
Json
:toJson
: expose parametertoEncodableProvider
.
APIServer
:resolveBody
:- When converting to JSON respect the
EntityAccessRules
of the context.
- When converting to JSON respect the
- test: ^1.23.1
1.3.41 #
EntityResolutionRules
:- Added
mergeTolerant
. copyWith
: addedconflictingEntityTypes
.merge
: allowing conflicting merge whenmergeTolerant
is present.
- Added
1.3.40 #
EntityResolutionRules
:- Added
innocuous
const instance. - Added:
isInnocuous
,isValid
,validate
. - Added:
copyWith
andmerge
. - Added
ValidateEntityResolutionRulesError
andMergeEntityResolutionRulesError
.
- Added
- Added
EntityRulesResolver
.resolveEntityResolutionRules
: returns aEntityResolutionRulesResolved
.- Added
registerContextProvider(EntityRulesContextProvider)
.
APIRoot
:- Initialization register:
EntityRulesResolver.registerContextProvider
.
- Initialization register:
- Added
APIEntityResolutionRules
. APIRouteHandler
: addedentityResolutionRules
.APIRequest
: addedrouteHandler
.- Moved entity rules classes to
bones_api_entity_rules.dart
.
1.3.39 #
APIRoot._callZoned
:- Better handling of errors: throwing with
StackTrace
.
- Better handling of errors: throwing with
EntityResolutionRules
:- Added
isEagerEntityTypeInfo
andisLazyEntityTypeInfo
.
- Added
DBEntityRepository
:- Optimize:
resolveEntities
and_resolveEntitiesSubEntities
.
- Optimize:
APIServer
:_sendAPIResponse
: better handling of error response.
Time.parse
:- Fix issue parsing input
String
as bytes.
- Fix issue parsing input
- coverage: ^1.6.3
1.3.38 #
SQLGenerator
:- Remove unecessary
UPDATE CASCADE
forid
(auto increment) references.
- Remove unecessary
- reflection_factory: ^2.0.0
- async_events: ^1.0.9
1.3.37 #
TransactionEntityProvider
:- Fix
getEntityByID
implementation: wasn't passing parameterresolutionRules
to sub-calls.
- Fix
- reflection_factory: ^1.2.25
1.3.36 #
DBRelationalEntityRepository
:_ensureRelationshipsStored
: avoid store of relationship fields if not inchangedFields
.
DBMemorySQLAdapter
andDBMemoryObjectAdapter
:- Construct
TableScheme
without relationship fields duplicated in the main fields.
- Construct
- args: ^2.3.2
- reflection_factory: ^1.2.22
1.3.35 #
- New
testAPIServer
tool. - Updated
bones_api_template.tar.gz
. - shelf_gzip: ^4.0.1
- mime: ^1.0.4
- stream_channel: ^2.1.1
- test: ^1.22.2
- coverage: ^1.6.2
1.3.34 #
- reflection_factory: ^1.2.21
1.3.33 #
- reflection_factory: ^1.2.19
1.3.32 #
APIServer
:defaultApiCacheControl
anddefaultStaticFilesCacheControl
:- Added
no-transform
directive.
- Added
- reflection_factory: ^1.2.18
1.3.31 #
APIServer
:- Optimize headers.
- Added fields:
apiCacheControl
andstaticFilesCacheControl
. - Better
cache-control
default values.
1.3.30 #
- statistics: ^1.0.24
- resource_portable: ^3.0.1
- swiss_knife: ^3.1.3
- archive: ^3.3.5
- mercury_client: ^2.1.8
1.3.29 #
DBAdapter
andDBRepositoryAdapter
:- Added
doSelectAll
- Added
DBMemoryObjectAdapter
:- Added support for
doSelectAll
.
- Added support for
APIDBModule
:- Added
dump
route. - JSON output compact: compatible with DB populate source samples.
- Added
- mime: ^1.0.3
- path: ^1.8.3
- yaml_writer: ^1.0.3
- build_runner: ^2.3.3
- build_verify: ^3.1.0
- test: ^1.22.1
1.3.28 #
APIRoot._callZoned
: fix error handling.
1.3.27 #
APIDBModule
:- Added constructor parameter
name
andonlyOnDevelopment
.
- Added constructor parameter
APISecurity
:- Allow call to
authenticate
withrequest
parameter from anAPIModule
.
- Allow call to
1.3.26 #
APIModule
:- Allow method routes with parameter
APIAuthentication
.
- Allow method routes with parameter
APIRoot._callZoned
: ensure that is catchingFuture
errors.- Added
APIConfig.development
to inform development environment. - Added
APIDBModule
: a development module only to show DB entities.
1.3.25 #
APISecurity
:- Added
disposeAuthenticationData
.
- Added
- swiss_knife: ^3.1.2
- pubspec: ^2.3.0
- coverage: ^1.6.1
1.3.24 #
APIResponse
:- Fix constructor parameter
headers
to ensure that it's always modifiable.
- Fix constructor parameter
APIServer
:- Static files:
- Added
gzip
encoding. - Added
cache-control
response header.
- Added
- Static files:
- logging: ^1.1.0
- collection: ^1.17.0
- mercury_client: ^2.1.7
- async_events: ^1.0.8
- archive: ^3.3.4
- lints: ^2.0.1
- build_runner: ^2.3.2
- test: ^1.22.0
1.3.23 #
APISecurity
:- Added
logout
andinvalidateToken
.
- Added
- Fixed
OPTIONS
method forauthenticationRoute
(/authenticate
). - sdk: '>=2.18.0 <3.0.0'
- petitparser: ^5.1.0
1.3.22 #
- reflection_factory: ^1.2.17
- async_events: ^1.0.7
1.3.21 #
APIServer
:- Added
useSessionID
to enable/disable theSESSIONID
cookie. - Added option
cookieless
for a server that blocks all cookies. - Added support for
Keep-Alive
.
- Added
APIRequest
:- Added
protocol
andkeepAlive
.
- Added
APIResponse
:- Added
keepAliveTimeout
andkeepAliveMaxRequests
.
- Added
1.3.20 #
- reflection_factory: ^1.2.16
1.3.19 #
ClassReflectionExtension
:- Added:
toEntityReference
,toEntityReferenceList
andtoList
.
- Added:
TypeInfoEntityExtension
:- Added
isValidEntityReferenceType
andisValidEntityReferenceListType
.
- Added
JsonDecoder.registerTypeDecoder
forEntityReference
andEntityReferenceList
:- Allow decoding of
null
values asEntityReference.asNull
andEntityReferenceList.asNull
.
- Allow decoding of
- reflection_factory: ^1.2.15
- shelf: ^1.4.0
- postgres: ^2.5.2
- build_runner: ^2.2.1
- test: ^1.21.6
1.3.18 #
APIRoot.resolveModule
: defaults to path part#0
.APIModule.resolveRoute
: defaults to path part#1 ?? #0
.- Ensure that any route resolution passes through
resolveRoute
method (allowing personalization).
- Ensure that any route resolution passes through
APIRouteBuilder
: allow path parts as parameter value byparameterIndex
.- reflection_factory: ^1.2.14
1.3.17 #
- Added
Etag
:WeakEtag
andStrongEtag
. - Added
CacheControlDirective
andCacheControl
. APIResponse
:- Added
payloadETag
andcacheControl
. - Added
APIResponse.notModified
.
- Added
- archive: ^3.3.1
1.3.16 #
APISecurity
:- Adjust
_storeTokeInfo
.
- Adjust
- async_events: ^1.0.6
1.3.15 #
DBSQLAdapter.generateCreateTableSQLs
:- Fix CREATE TABLE SQLs order when a field is referencing to another DB.
1.3.14 #
APISecurity
:getCredentialPermissions
: Added parameterpreviousPermissions
.getAuthenticationData
: Added parameterpreviousData
.
- async_events: ^1.0.5
1.3.13 #
- Ensure that parameter
EntityResolutionRules? resolutionRules
is fully propagated while fetching and resolving entities. - Added
TransactionEntityProvider
to correctly resolve entities while callingentityHandler.createFromMap
inside aTransaction
. EntityReferenceBase
:- Added
typeName
for correct generation of JSON. - Added parameter
withEntity
tocopy
.
- Added
- Export
MimeType
andDataURLBase64
from packageswiss_knife
. - reflection_factory: ^1.2.13
1.3.12 #
- Add
EntityHandler.typeName
to avoid minification issues withType
s name. - async_events: ^1.0.4
- reflection_factory: ^1.2.12
1.3.11 #
DBAdapter
:- Fix resolution of
EntityReferenceBase
field table.
- Fix resolution of
DBMemorySQLAdapter
:- Fix resolution of relationship tables with multiple candidates.
1.3.10 #
EntityReference.fromID
: accepts null ID (works likeasNull
).Initializable
:InitializationChain._isParent
: improve speed of search in the parent tree.
- Fix update of
Uint8List
fields.
1.3.9 #
- Improved
enumFromName
. - Added
IterableEnumExtension
. - Added
Type.tryParse
. EntityReference
andEntityReferenceList
:- improve
fromJson
.
- improve
- Fix
EntityRepository.selectFirstByQuery
:resolutionRules
wasn't being passed to sub calls.
1.3.8 #
- Added
APIRequest.id
. - Added
APIRoot.currentAPIRequest
.- Logging messages now show the current
APIRequest.id
.
- Logging messages now show the current
/API-INFO
:- Now accepts a selected module. Example:
/API-INFO/user
- Now accepts a selected module. Example:
- Added
APIRequest.parsingDuration
. - Added
APIRepository.count
. - Added
DBEntityRepositoryProvider.extraDependencies
. - Added
Transaction.parentTransaction
:cacheEntity
now also propagates cache toparentTransaction
.
EntityHandler
:Uint8List
resolution: now acceptsbase64
,HEX
andData URL
.
- Added
EntityReferenceList
: a version ofEntityReference
for entities lists. - Fix
EntityRepository._entitiesTracker
: now tracked fields values are isolated from tracked entity. - Fix
APISecurity._resolveAuthentication
: avoid multiple parallel calls for user resolution. - Added tests for
DBMemoryObjectAdapter
. - reflection_factory: ^1.2.10
1.3.7 #
- Added
EntityReference
: An entity field wrapper that allows lazy load of sub-entities. - Added
EntityResolutionRules
to allow lazy or eager selects. EntityProvider
:getEntityByID
: Added parametersync
.
- reflection_factory: ^1.2.9
1.3.6 #
- Added integration with
AsyncEvent
. - reflection_factory: ^1.2.6
- async_events: ^1.0.3
- statistics: ^1.0.23
- postgres: ^2.4.6
- shelf: ^1.3.2
- yaml_writer: ^1.0.2
1.3.5 #
SQL
:- Added
isFullyDummy
.
- Added
DBSQLAdapter
:- Improve
fieldValueToSQL
when the entity is from another adapter. updateSQL
anddoUpdateSQL
: return the ID even when theSQL.isDummy
.
- Improve
1.3.4 #
APIRouteBuilder
: Accepts Data URL forUint8List
parameters.APIModuleHttpProxy.doRequest
: convertsUint8List
to Data URL (throughJson.toJson
).
1.3.3 #
- Added
EntityResolutionRules
. populateFromSource
:- Allow source samples with
url(path/to/file.txt)
, that will be read from a local file.
- Allow source samples with
1.3.2 #
- Clean code.
1.3.1 #
DBMemorySQLAdapter
,DBMemoryObjectAdapter
,DBPostgreSQLAdapter
DBMySQLAdapter
:- Improve
toString
: showinstanceID
.
- Improve
SQLGenerator
:- Fix CONSTRAINT to an entity type from another DBAdapter.
1.3.0 #
- Clean code:
- Renamed
MemorySQLAdapter
toDBMemorySQLAdapter
. - Renamed
MemoryObjectAdapter
toDBMemoryObjectAdapter
. - Renamed
SQLAdapter
toDBSQLAdapter
.- Renamed
SQLEntityRepository
toDBSQLEntityRepository
. - Renamed
SQLEntityRepositoryProvider
toDBSQLEntityRepositoryProvider
.
- Renamed
- Renamed
MySQLAdapter
toDBMySQLAdapter
. - Renamed
PostgreSQLAdapter
toDBPostgreSQLAdapter
. - Renamed
bones_api_adapter_mysql.dart
tobones_api_db_mysql.dart
. - Renamed
bones_api_adapter_postgre.dart
tobones_api_db_postgre.dart
. - Renamed some
lib/src/*.dart
files.
- Renamed
1.2.26 #
- Fix resolution of
EntityRepository
when the same instance is returned by multiple providers. - Fix
selectByID
with null parameters and null ID. - Fix resolution of route parameters with a type of
List
of entities. - sdk: '>=2.17.0 <3.0.0'
- reflection_factory: ^1.2.5
1.2.25 #
- Added
ZoneField
:- A field value based on the current
Zone
. - Used to correctly resolve
Transaction.executingTransaction
and allow multiple simultaneousTransaction
s.
- A field value based on the current
APIRouteBuilder
:- Improve resolution of request parameters (entities,
Decimal
and bytes). - Allow resolution of entities and parameters using the request's payload.
- Improve resolution of request parameters (entities,
- New
MemoryObjectAdapter
: allow storage of objects without relationships. - Added
DBRelationalAdapter
:- Refactor
DBAdapter
andSQLAdapter
to have an intermediateDBRelationalAdapter
.
- Refactor
Transaction
:- Fix finalization when some complex asynchronous errors happens in the
Transaction
. - Added
TransactionOperationSubTransaction
, to wrap sub transactions as an operation of the parent transaction (used when multipleDBAdapter
s are used in aTransaction
).
- Fix finalization when some complex asynchronous errors happens in the
- data_serializer: ^1.0.7
- map_history: ^1.0.3
- async_extension: ^1.0.11
- reflection_factory: ^1.2.4
1.2.24 #
bin/bones_api.dart
:- Fix parameter
--lib
when respawning for Hot Reload.
- Fix parameter
- Added
SQLDialect
for better handling of syntax variations. SQLAdapter
:- Moved to
SQLDialect
:sqlElementQuote
,sqlAcceptsOutputSyntax
,sqlAcceptsReturningSyntax
,sqlAcceptsTemporaryTableForReturning
,sqlAcceptsInsertDefaultValues
,sqlAcceptsInsertIgnore
,sqlAcceptsInsertOnConflict
.
- Moved to
SQLGenerator
: allowVARCHAR PRIMARY KEY
.EntityHandler
:- Fix
EntityCache
interaction issues:- Some instance were not being cached depending on the instantiation type.
- Internal call to
Json.fromJson
were wrongly clearing theEntityCache
.
- Respecting new parameter
EntityCache.allowEntityFetch
.
- Fix
APIPayload
(APIRequest
,APIResponse
):- Changed
payloadMimeType
fromString
toMimeType
.
- Changed
- async_extension: ^1.0.10
- reflection_factory: ^1.2.3
- statistics: ^1.0.22
1.2.23 #
APIConfig
:- Added
sourceParentPath
.
- Added
EntityRepositoryProvider
:populateFromSource
: added parameterworkingPath
.
DBAdapter
andSQLAdapter
:- added parameter
workingPath
.
- added parameter
APIPlatform
:resolveFilePath
: added parameterparentPath
.
bin/bones_api.dart
:- Added command
inspect
.
- Added command
- Updated
lib/src/template/bones_api_template.tar.gz
. - reflection_factory: ^1.2.2
1.2.22 #
SQLAdapterCapability
:- Fix declaration for
PostgreSQLAdapter
andMySQLAdapter
.
- Fix declaration for
1.2.21 #
APIRepository
:- Add missing
transaction
parameters.
- Add missing
Transaction
:- Added
executeOrError
.
- Added
APIResponse
:- added field
stackTrace
.
- added field
APIRouteHandler
:- Added logging of route call.
- Added
MapAsCacheExtension
.
1.2.20 #
SQLAdapter
:- generateTables: fix, to avoid generation if
capability.tableSQL
isfalse
.
- generateTables: fix, to avoid generation if
- reflection_factory: ^1.2.1
1.2.19 #
TableScheme
:getTableRelationshipReference
: better resolution when an entity has multipleList
fields referencing the same entity/table.
1.2.18 #
Transaction
:- Fix synchronization of final return for long transactions.
- Added
SQLAdapterException
andDBAdapterException
for better exception/error handling:MemorySQLAdapterException
.PostgreSQLAdapterException
.MySQLAdapterException
.
- Added
FieldNameMapper
.
1.2.17 #
- Fix resolution of table columns to entity fields when resolving sub-entities.
1.2.16 #
MemorySQLAdapter
:- Fix delete constraint for tables without referenced fields.
APIRoot
:- Added
getByType
. - Added
close
(removes from availableAPIRoot
instances). stop
now also closes theAPIRoot
.
- Added
APIServer
:stop
now also closes theAPIRoot
.
EntityRepositoryProvider
:- Optimize
getEntityRepository
- Added
getEntityRepositoryByType
.
- Optimize
EntityHandler
:- Added
getEntityHandlerByType
andgetEntityRepositoryByType
.
- Added
EntityHandlerProvider
:- Added
getEntityHandlerByType
andgetEntityRepositoryByType
.
- Added
clearPool
:clearPool
now also closes/disposes all elements in the pool.
1.2.15 #
ConditionSQLEncoder
:keyFieldToSQL
: fix resolution of class field to table column name.- Added
resolveFieldName
.
EntityStorage
:- Added
tryDeleteEntity
andtryDeleteByID
.
- Added
MemorySQLAdapter
now check references constraint before delete.PostgreSQLAdapter
: improved connection retry.- Added
tryCallMapped
andtryCall
utils.
1.2.14 #
SQLAdapter
:- Added option
generateTables
: will automatically generate the tables when initialized.
- Added option
PostgreSQLAdapter
:- When update auto inserts (new entity with pre-defined ID), a fix of the primary key sequence is performed.
1.2.13 #
SQLGenerator
:- Added
normalizeColumnName
: now generates column names using underscore (from camel-case fields).
- Added
StringUtils
:- Added
toLowerCaseSimple
andtoLowerCaseUnderscore
.
- Added
1.2.12 #
MemorySQLAdapter
: check for unique fields.PostgreSQLAdapter
andMySQLAdapter
: handles unique field errors asEntityFieldInvalid
.EntityFieldInvalid
: improved error information (addedtableName
andparentError
).
1.2.11 #
EntityHandler
: FixvalidateFieldValue
for sub-entities.
1.2.10 #
- Generate
CREATE TABLE
SQL with unique constraint (fromEntityField
).
1.2.9 #
- Generate
CREATE TABLE
SQL usingEntityField
information.
1.2.8 #
- Add
EntityField
: annotation to inform if a field ishidden
,unique
and its limits (minimum
,maximum
). EntityStorage
: now checks entity fields validity (EntityField
).
1.2.7 #
- Split
bones_api_entity_adapter.dart
intobones_api_entity_adapter_sql.dart
. PostgreSQLAdapter
:- dialect: "PostgreSQL"
MySQLAdapter
:- dialect: "MySQL"
SQLGenerator
:generateCreateTableSQL
:- Added parameters
ifNotExists
andsortColumns
. - fix column generation for enum fields.
- Added parameters
generateFullCreateTableSQLs
: added parameterswithDate
,ifNotExists
andsortColumns
.
SQLAdapter
tests:- Now is creating tables using
generateFullCreateTableSQLs
(MySQL
andPostgreSQL
).
- Now is creating tables using
1.2.6 #
- Added
SQLBuilder
that is used to generate the entitiesCREATE TABLE
SQLs. - Added
SQLGenerator
that is capable to generate entities tables and relationships SQLs. - Split
SQLAdapter
andSQLAdapterCapability
intoDBAdapterCapability
andDBAdapter
. SQLAdapter
:- Added
generateCreateTableSQLs
,generateFullCreateTableSQLs
,generateEntityRepositoresCreateTableSQLs
.
- Added
- Added
DBEntityRepositoryProvider
andSQLEntityRepositoryProvider
. - statistics: ^1.0.21
- test: ^1.21.4
- dependency_validator: ^3.2.2
1.2.5 #
- sdk: '>=2.15.0 <3.0.0'
- petitparser: ^5.0.0
- hotreloader: ^3.0.5
1.2.4 #
SQLAdapter
:- Fix
extractSQLs
.
- Fix
APITestConfigDBMemory
:- Now starts creating a
MemorySQLAdapter
.
- Now starts creating a
APITestConfigDockerPostgreSQL
:- Fix
listTables
implementation.
- Fix
APITestConfigDockerMySQL
:- Fix
listTables
implementation.
- Fix
1.2.3 #
APIRootStarter
:- Added
isStopped
. - Improved documentation.
- Improved tests.
- Added
APIRouteBuilder
:apiInfo
now also returnsAPIRouteInfo
for method specific routes.
APITestConfig
:- Added
resolveSupported
,isSupported
,isUnsupported
andunsupportedReason
. - New
APITestConfigDockerDBSQL
: adding SQL methods for DB containers with SQL support.
- Added
- Better hierarchy of
APITestConfig
implementations. LoggerHandler
:- Exposed global function
logToConsole
. - Added
cancelLogToConsole
.
- Exposed global function
- Added library
bones_api_test_vm.dart
.- Exposes
resolveFreePort
(now uses a random approach to avoid collision between parallel tests).
- Exposes
- docker_commander: ^2.0.15
1.2.2 #
- Fix library names:
bones_api_test
bones_api_test.mysql
.bones_api_test.postgres
.
1.2.1 #
EntityAccessor
: addednameSimplified
.LoggerHandler
:logToConsole
: avoid multiple listeners to the root logger.
APITestConfigDocker
: remove unnecessary call tologToConsole()
.- Fix imports at
bones_api_root_starter.dart
.
1.2.0 #
- Added
APIRootStarter
helper. - Added
APITestConfig
: anAPIRoot
test helper. - Added
APITestConfigDocker
, a base class forDocker
database containers:APITestConfigDockerMySQL
(MySQL container)APITestConfigDockerPostgreSQL
(PostgreSQL container)
APIConfig
: now supports variables (%VAR_NAME%).SQLAdapterCapability
: added capabilitytableSQL
.SQLAdapter
:- Added parameters
populateTables
andpopulateSource
(previously present only forMemorySQLAdapter
). - Added
populateTables
andexecuteTableSQL
methods. generateInsertSQL
: fix issue when all values are null.
- Added parameters
MySQLAdapter
andPostgreSQLAdapter
:- Improved automatic resolution of relationship tables.
MemorySQLAdapter
:populateFromSource
moved toEntityRepositoryProvider
extension.
APIPlatform
:getProperty
: read a property from an "environment variable" (VM) orwindow.location.href
(Browser).
APISession
andAPISessionSet
: moved tobones_api_session.dart
.- Change named parameter
caseInsensitive
tocaseSensitive
to followRegExp
parameters naming style. - Split
bones_api_utils.dart
in multiple utils files:bones_api_utils_collections.dart
bones_api_utils_httpclient.dart
bones_api_utils_json.dart
bones_api_utils_timedmap.dart
- docker_commander: ^2.0.14
1.1.34 #
MemorySQLAdapter
:- Consolidating tables after a transaction is finished, removing unnecessary history data.
- map_history: ^1.0.2
1.1.33 #
- mysql1: ^0.20.0
- postgres: ^2.4.5
- lints: ^2.0.0
- coverage: ^1.3.2
1.1.32 #
MemorySQLAdapter
:- Using
MapHistory
for internal representation, to allow rollback of transactions. SQLAdapterCapability
:transactionAbort
:true
(rollback support).
- Using
- Tests for
SQLAdapter
:- Improve detection of
Docker
daemon and skipping of tests group whenDocker
is not running.
- Improve detection of
- map_history: ^1.0.1
1.1.31 #
EntityHandler
:castListNullable
andcastIterableNullable
.castList
: better exception message when an element is null.
Condition
: Better resolution and matching of JSON collections and entities.KeyCondition
:- Fix
_resolveValueEntityHandler
forList
entities types.
- Fix
MemorySQLAdapter
:- Fix
_normalizeEntityJSON
.
- Fix
1.1.30 #
MemorySQLAdapter
:- Ensure that the stored data has only valid JSON values for the whole entity tree.
EntityRepository
:- Added
isOfEntityType
.
- Added
1.1.29 #
EntityRepository
:- Added
deleteEntity
,deleteByID
anddeleteEntityCascade
.
- Added
EntityHandler
:- Renamed
isValidType
toisValidEntityType
.
- Renamed
- shelf: ^1.3.1
- shelf_static: ^1.1.1
- reflection_factory: ^1.2.0
- postgres: ^2.4.4
1.1.28 #
EntitySource
:- Added
selectFirstByQuery
.
- Added
- Clean code.
1.1.27 #
Initializable
:Initializable.initialize
: Now returns aInitializationResult
, allow improved results and dependencies in the result.- Improve automatic detection of circular dependencies and avoid deadlocks.
- Refactor of dependency chain analysis code.
1.1.26 #
Initializable
:- Moved code to
bones_api_initializable.dart
. - Initialization of circular dependencies:
- Automatically identify initialization of circular dependencies.
- "Fix" the asynchronous deadlock caused by wait of circular dependencies.
- Moved code to
1.1.25 #
EntityRepositoryProvider
:storeAllFromJson
: ensure that operations are executed sequentially.
1.1.24 #
- Improve populate of entities using ID as reference to sub entities fields.
EntitySource
:- Added
existsID
.
- Added
SQLAdapter
:- Fixed storage (and update fallback) of entities with pre-defined IDs.
MemorySQLAdapter
:- Fixed
count
with a condition.s
- Fixed
- petitparser: ^4.4.0
1.1.23 #
- Small path for the last version.
1.1.22 #
MemorySQLAdapter
:- Fixed when comparing entities and IDs.
1.1.21 #
Initializable
:- Now allows async initializations.
MethodReflectionExtension
:isAPIMethod
now acceptsFutureOr<APIResponse>
.
EntityRepository
:- Added
selectAll
.
- Added
- reflection_factory: ^1.1.2
- crypto: ^3.0.2
- shelf: ^1.3.0
- hotreloader: ^3.0.4
- args: ^2.3.1
- yaml: ^3.1.1
1.1.20 #
APIServer
:- Improve resolution of
APICredential
username.
- Improve resolution of
- mercury_client: ^2.1.6
1.1.19 #
APIServer
:- Improved resolution of request payload.
- Added
decodeQueryStringParameters
, for full decoding of query string with single and multiple parameters.
1.1.18 #
APIRoot
:- Added
callAuthenticate
.
- Added
APIRequest
:- Added
credential
to constructors.
- Added
1.1.17 #
APIModuleProxy
:- ignoreParametersTypes: added type
APICredential
(should exist only in the implementation).
- ignoreParametersTypes: added type
- reflection_factory: ^1.1.0
1.1.16 #
- reflection_factory: ^1.0.29
1.1.15 #
- Improved GitHub CI.
- Added browser tests.
- mercury_client: ^2.1.5
- swiss_knife: ^3.1.0
- data_serializer: ^1.0.7
1.1.14 #
MemorySQLAdapter
: fixnextID
when entities are stored with pre-defined IDs.EntityHandler
: RenameidFieldsName
toidFieldName
.
1.1.13 #
ClassReflectionEntityHandler
:- Improve
createFromMap
. - Compatibility with
JsonFieldAlias
.
- Improve
- reflection_factory: ^1.0.28
1.1.12 #
SQLAdapter
(PostgreSQL
,MySQL
and in-memory):- Allow auto insert of new entities with explicit IDs. It was trying to update an entity that is not stored.
MemorySQLAdapter
:- Fixed support for relationship tables.
- Fixed isolation of internal data (memory) that was leaking through queries results.
- Improved tests: now running same tests of
PostgreSQL
andMySQL
.
- Better resolution of
EntityRepository
when multiple candidates are present. - Added helpers:
deepCopy
,deepCopyList
,deepCopySet
anddeepCopyMap
.
1.1.11 #
Transaction
:- Queries now reuse already instantiated entities in the same transaction.
- Added
EntityCache
for entity instantiation fromMap
or JSON. EntityRepository
:- Added
storeAllFromJson
andstoreFromJson
.
- Added
MemorySQLAdapter
:- Fixed relationships of
TableScheme
loaded by the memory SQLAdapter.
- Fixed relationships of
- Fix update of sub-entities, that was being ignored.
- Improve error logging.
- reflection_factory: ^1.0.27
1.1.10 #
- Optimize relationship requests to resolve entities.
MemorySQLAdapter
: support of returned columns with alias name.
1.1.9 #
- Fix update SQL when a set value is null.
1.1.8 #
APIServer
andAPIModule
: improved error logging.- statistics: ^1.0.20
1.1.7 #
APIModuleProxy
: ignoringAPIRequest
parameters.- reflection_factory: ^1.0.25
1.1.6 #
APIServer
:- Improved CORES response (
OPTIONS
request).
- Improved CORES response (
APISecurity
:- Improved resolution of credential token and related username.
- Improved tests.
1.1.5 #
- SQL:
- Added:
numeric
type mapped toDecimal
.
- Added:
- Fix JSON parsing of
Decimal
types.
1.1.4 #
- Integrate
Decimal
to entities, repositories, JSON and SQL. - Improve
APIPlatform
. - statistics: ^1.0.19
1.1.3 #
EntityHandler.resolveValueByType
:- Avoid
dev_compiler
bug https://github.com/dart-lang/sdk/issues/48631 when generating JS code.
- Avoid
1.1.2 #
- Added
ConditionIdIN
: to allow optimized selection of multiple IDs with one query. - Added
EntityProvider
to all entity field resolution related operations, likecreateFromMap
andJson.decode
. - Improve
APIModuleHttpProxy
response body decoding. - reflection_factory: ^1.0.24
- mercury_client: ^2.1.4
1.1.1 #
- Fix
MethodReflectionExtension.returnsAPIResponse
.
1.1.0 #
- Added
APIModuleProxy
andAPIModuleHttpProxy
. - reflection_factory: ^1.0.23
- meta: ^1.7.0
1.0.39 #
- Added support to Let's Encrypt HTTPS certificates.
bones_api.dart
CLI:- Allow domain static files.
APIRoot
:APILogger
: to allow logging ofAPIRoot
events.APIRequestHandler
: for personalized request handlers.- New fields
preApiRequestHandlers
andposApiRequestHandlers
.
- Fix
SQLAdapter.generateInsertRelationshipSQLs
. - Added test tag:
slow
- shelf_static: ^1.1.0
- shelf_letsencrypt: ^1.0.0
- dart_spawner: ^1.0.6
- data_serializer: ^1.0.6
- mercury_client: ^2.1.3
- build_verify: ^3.0.0
- path: ^1.8.1
- sdk: '>=2.14.0 <3.0.0'
1.0.38 #
- Fix references and naming:
postgre
topostgres
. APIServer
: added support forGzip
encoding, through packageshelf_gzip
.- shelf_gzip: ^4.0.0
- reflection_factory: ^1.0.21
- data_serializer: ^1.0.3
1.0.37 #
- Added support to
Condition
operator=~
(IN
). - Added support to SQL operator
IN
. - postgres: ^2.4.3
- test: ^1.19.5
- dependency_validator: ^3.1.2
1.0.36 #
TypeParser
andTypeInfo
moved to packagereflection_factory
.- reflection_factory: ^1.0.20
1.0.35 #
- Fix
TypeInfo
:- Now
TypeInfo
handlesType
comparison in a special way (to keep consistence between VM and JS/Web).
- Now
1.0.34 #
- Improved
EntityHandler
resolution of fields while creating instances fromMap
. - reflection_factory: ^1.0.19
1.0.33 #
Entity
&EntityHandler
:- Added support for enums.
- Added
enumToName
andenumFromName
- reflection_factory: ^1.0.18
1.0.32 #
Json
:- Integrated with
reflection_factory
JsonCodec
.
- Integrated with
FieldsFromMap.getFieldsValuesFromMap
: added parameterincludeAbsentFields
.isAPIMethod
: now ignores methods declared byAPIModule
, sincereflection_factory
now supports supper classes.- reflection_factory: ^1.0.17
- postgres: ^2.4.2
- build_runner: ^2.1.5
- test: ^1.19.3
1.0.31 #
- Added
APIServer.apiInfoURL
. - Updated
bones_api_template.tar.gz
. - CLI
serve
: fix an issue when mixing parameters-b
and-r
.
1.0.30 #
Json.toJson
:- Added parameters:
removeNullFields
andentityHandlerProvider
. - Fixed application of
removeField
andmaskField
over an entity.
- Added parameters:
1.0.29 #
- Improved
Json.toJson
. - Added field
APIAuthentication.data
. APISecurity
: addedgetAuthenticationData
.
1.0.28 #
- Added
API-INFO
path: describes the API routes.
1.0.27 #
- Improved resolution of
ClassReflectionEntityHandler
. - Extension:
ReflectionFactory.createFromMap
.ClassReflection.createFromMap
.
- async_extension: ^1.0.9
- reflection_factory: ^1.0.16
1.0.26 #
- Added
APICredential
,APIPassword
andAPISecurity
. - Routes now can have
APIRouteRule
annotations. EntityHandler
: now using also using sibling reflections to resolve.DataTime
:toJson
now converts to aUTC
string.- Added
MapMultiValueExtension
. - Updated
bones_api_template.tar.gz
. - reflection_factory: ^1.0.14
- crypto: ^3.0.1
1.0.25 #
- Update template:
lib/src/template/bones_api_template.tar.gz
1.0.24 #
TableFieldReference
andTableFieldReference
now also have the fields type.SchemeProvider
now can resolve an entity ID.- Fix
Condition
value when an entity is passed or referenced.
1.0.23 #
Transaction
:- Added
abort
to cancel the current executing transaction. - Better error handling.
- Added
- Error Zone:
runErrorZone
transformed intocreateErrorZone
and an extension withrunGuardedAsync
andasyncTry
.
executeWithPool
: addedvalidator
parameter.- async_extension: ^1.0.8
1.0.22 #
Condition
:- Improved subfield match.
SQL
:- Allow
Condition
with fields that are a relationship table.
- Allow
MySQLAdapter
:- Using
sqlElementQuote
"`" to avoid issues with reserved words.
- Using
1.0.21 #
- Better handling of route parameters with
null
and empty values. - Improve example and
README.md
. - mercury_client: ^2.1.1
1.0.20 #
APIRouteBuilder
:- Better conversion of parameters types.
- Payload only for parameter of type
Uint8List
.
APIServer
:- Better handling of errors of async payloads (
Future
resolution).
- Better handling of errors of async payloads (
1.0.19 #
- Improved
SQLEntityRepository
tests. - Fixed
MemorySQLAdapter
:- Ensure that relationships entries are unique.
- Update previous entity fields.
- Improved tests tags:
version
,docker
andbuild
.
1.0.18 #
APIResponseStatus
:- Added
BAD_REQUEST
.
- Added
- Added
InstanceTracker
to track entities fields changes. EntityRepository
:- tracking entity fields changes.
- SQL:
- Fix update syntax.
- Improved
UPDATE
to set only modified fields.
1.0.17 #
- Optimize imports.
- Fix wrong import, that was preventing to use in JS/Browser platforms.
1.0.16 #
- Better handling of
APIServer
errors and logging. - Added
runErrorZone
helper. - Added logging for entity operations errors.
- reflection_factory: ^1.0.13
1.0.15 #
EntityHandler
:resolveValueByType
now can select an entity by its ID when necessary.
ClassReflectionEntityHandler
:- Fixed
fieldsTypes
andfindIdFieldName
, to ignore fields that are final or doesn't have a setter. - Fixed use of
reflection
to ensure that current object is used.
- Fixed
- Improved tests to run
Entity
tests repositories with reflection and without reflection. - reflection_factory: ^1.0.12
1.0.14 #
- Added
SQLAdapter
forMySQL
. - SQL:
- Improve generated SQL, to adapt to different dialects.
- Allow generation of SQL with only positional parameters (needed for MySQL).
- Improve return of DELETE, to circumvent SQL dialects without
RETURNNG
andOUTPUT
. - Improved supported types.
- mysql1: ^0.19.2
- docker_commander: ^2.0.13
1.0.13 #
- Added
TypeInfo
to represent better types with generics. - Added
TableRelationshipReference
for use inTableScheme
. - Added
TimedMap
to help with timed caches. - Added
KeyConditionIN
andKeyConditionNotIN
. - Entities:
- Added support to relationship fields.
- Added support for List fields pointing to another entity.
SQLEntityRepository
:- Added support to UPDATE.
- Added support to relationship tables.
1.0.12 #
- CLI:
- Added option
--build
to automatically build reflection files when detected by inspector. - Added commands:
create
: creates abones_api
backend project tree.info
: show information about thebones_api
backend project template.
- Added option
- reflection_factory: ^1.0.10
- project_template: ^1.0.2
- resource_portable: ^3.0.0
1.0.11 #
APIRequest
:- Added
scheme
,requesterSource
and_requesterAddress
.
- Added
APIResponse
:- Added metrics support (used to generate
Server-Timing
headers). - Added
setCORS
.
- Added metrics support (used to generate
- Added
TypeParser
, for lenient parsing of basic Dart types. - Entities:
- Better automatic conversion of types when setting entities fields.
- Added support for transactions.
- Repositories:
- Added
limit
support for queries. - Better resolution of correct
EntityRepository
andEntityHandler
for a type while loading it. - Better resolution of sub-entities in fields.
- Added
- Improved tests:
- Using Docker container to test PostgreSQL adapter.
- async_extension: ^1.0.7
- reflection_factory: ^1.0.8
- docker_commander: ^2.0.12
1.0.10 #
TableScheme
:- Added
getFieldsValues
andgetFieldValue
.
- Added
EntityHandler
: optimized fiel resolution onsetFieldsFromMap
.- Improved dartdoc references.
- Improved tests.
1.0.9 #
apiMethod
now can receive anAPIRequest
parameter while receiving other normal parameters.PostgreSQLAdapter
: correctly resolvingidFieldName
by primary key column.- Added test to ensure that
APIRoot.VERSION
is compatible withpubspec.yaml
. - Added test that uses reflection.
- Added
build_verify
test. - reflection_factory: ^1.0.7
1.0.8 #
- Added
APIConfig
:- CLI now accepts a
--config
option.
- CLI now accepts a
- Rename
Data
classes toEntity
. - Added
MemorySQLAdapter
. - Added
TableScheme
to helpConditionEncoder
:- SQL now can perform inner join:
- Example Condition:
address.state = "NY"
- Example Condition:
- SQL now can perform inner join:
- Improved
ConditionID
encoding:- ID field name (primary key) can be resolved for each table.
#ID
can be used to point to the primary key field/column.
APIRepository
&EntityRepository
:- Added delete operation.
EntityHandler
now handles better fields that points to other entities.- Improved tests.
- async_extension: ^1.0.5
- reflection_factory: ^1.0.6
- yaml: ^3.1.0
- yaml_writer: ^1.0.1
- mercury_client: ^2.1.0
1.0.7 #
- Added
APIPayload.payloadFileExtension
. - Added
ConditionEncoder
,ConditionSQLEncoder
. - Improved Data & Entity framework:
- Added
SQLDatabaseAdapter
andPostgreAdapter
. - Added
DataRepositorySQL
.
- Added
- Added DB Adapter for PostgreSQL.
- APIServer:
- Better auto MIME Type resolution.
- Now API methods can return
FutureOr<APIResponse>
. - mime: ^1.0.0
1.0.6 #
- CLI Hot Reload fixed:
- Avoid reload of main Isolate (bones_api CLI), since API is spawned in its own Isolate.
DataEntity
:- Added
fieldsNames
.
- Added
DataHandlerProvider
:- Fixed
getDataHandler
.
- Fixed
- Added
EntityDataHandler
andDataRepositoryProvider
.
1.0.5 #
- Added integration with
ReflectionFactory
.- Routes can be configured using a
reflection
object.
- Routes can be configured using a
APIServer
:- Added support to Dart VM Hot Reload.
- CLI
bones_api
:- Added flag
--hotreload
to serve the API with Hot Reload enabled.
- Added flag
- Added
DataEntity
andDataHandler
framework - Added
Condition
:- Allow queries using a syntax similar to Dart.
- New
APIRepository
, to allow database agnostic integration. - dart_spawner: ^1.0.5
- reflection_factory: ^1.0.4
- args: ^2.2.0
- petitparser: ^4.2.0
- hotreloader: ^3.0.1
- logging: ^1.0.1
- collection: ^1.15.0
- lints: ^1.0.1
1.0.4 #
- CLI
bones_api
:- Added command
console
. - Command
serve
: added headerContent-Type
.
- Added command
- Added
Arguments
tool. - Added
APIRequest.fromArgs
andAPIRequest.fromArgsLine
. - Added
APIRequest
/APIResponse
payloadMimeType
.
1.0.3 #
APIServer
:- Added
create
andrun
helpers.
- Added
1.0.2 #
APIServer
:- Add
isStopped
andwaitStopped()
. - Removed
isClosed
.
- Add
- Fix
PATCH
method. - CLI:
- Improved serve console logging.
- Using
dart_spawner
to spawn/run anAPI
. - dart_spawner: ^1.0.2
- Removed
yaml: ^3.1.0
1.0.1 #
- Improve documentation.
- Fix typo.
1.0.0 #
- CLI:
bones_api
withserve
command. - Initial version.