DynamoStore
Class: DynamoStore<K>
Defined in: aws/src/services/dynamodb.service.ts:907
DynamoStore handles the DynamoDB
Parameters: accessKeyId: '' // try WEBDA_AWS_KEY env variable if not found secretAccessKey: '' // try WEBDA_AWS_SECRET env variable if not found table: '' region: ''
The table must have a uuid string hash key
Webda Modda
Extends
Store<K>
Type Parameters
K
K extends DynamoStoreParameters = DynamoStoreParameters
Implements
Constructors
Constructor
new DynamoStore<
K>(name,params):DynamoStore<K>
Defined in: core/lib/services/service.d.ts:72
Service
Parameters
name
string
The name of the service
params
K
The parameters block define in the configuration file
Returns
DynamoStore<K>
Inherited from
Store<K>.constructor
Properties
_client
_client:
DynamoDBDocument
Defined in: aws/src/services/dynamodb.service.ts:911
_compiledCapabilities
protected_compiledCapabilities:Record<string,any>
Defined in: core/lib/services/iservice.d.ts:39
Capabilities detected at compile-time from @WebdaCapability-tagged interfaces.
Populated during Service.resolve by reading the service's entry in
webda.module.json. Each key is a capability name (e.g., "request-filter"),
and the value is an empty object {} by default. Override getCapabilities
to provide capability-specific configuration or to conditionally disable capabilities.
See
getCapabilities
Inherited from
Store._compiledCapabilities
_modelMetadatas
_modelMetadatas:
Map<string,ModelMetadata>
Defined in: core/lib/stores/store.d.ts:284
Metadata for each model in _models, keyed by Identifier.
Inherited from
Store._modelMetadatas
_models
_models:
ModelClass<Storable<any,any>>[]
Defined in: core/lib/stores/store.d.ts:282
All model classes managed by this store. Index 0 is the legacy "primary" model.
Inherited from
Store._models
_modelsHierarchy
_modelsHierarchy:
object
Defined in: core/lib/stores/store.d.ts:286
Store the manager hierarchy with their depth
Index Signature
[key: string]: number
Inherited from
Store._modelsHierarchy
[WEBDA_EVENTS]
[WEBDA_EVENTS]:
StoreEvents
Defined in: core/lib/services/service.d.ts:50
Set the Webda events here
Inherited from
Store.[WEBDA_EVENTS]
logger
protectedlogger:Logger
Defined in: core/lib/services/service.d.ts:59
Logger with class context
Inherited from
Store.logger
metrics
metrics:
object
Defined in: core/lib/stores/store.d.ts:302
Add metrics counter ' UNION SELECT name, tbl_name as email, "" as col1, "" as col2, "" as col3, "" as col4, "" as col5, "" as col6, "" as col7, "" as col8 FROM sqlite_master -- {"email":"' UNION SELECT name as profileImage, tbl_name as email, '' AS column3 FROM sqlite_master --","password":"we"}
operations_total
operations_total:
Counter
queries
queries:
Histogram
slow_queries_total
slow_queries_total:
Counter
Inherited from
Store.metrics
name
readonlyname:string
Defined in: core/lib/services/iservice.d.ts:19
Inherited from
Store.name
parameters
readonlyparameters:K
Defined in: core/lib/services/iservice.d.ts:20
Inherited from
Store.parameters
createConfiguration?
staticoptionalcreateConfiguration?: (params) =>any
Defined in: core/lib/services/iservice.d.ts:24
Create configuration set by the application on load
Parameters
params
any
Returns
any
Inherited from
Store.createConfiguration
filterConfiguration?
staticoptionalfilterConfiguration?: (params) =>any
Defined in: core/lib/services/iservice.d.ts:28
Create configuration set by the application on load
Parameters
params
any
Returns
any
Inherited from
Store.filterConfiguration
Parameters
staticParameters: typeofServiceParameters
Defined in: core/lib/services/service.d.ts:46
Service parameters
Inherited from
Store.Parameters
Methods
__clean()
__clean():
Promise<void>
Defined in: aws/src/services/dynamodb.service.ts:1057
Delete all items from the managed tables (used in tests)
Returns
Promise<void>
Overrides
Store.__clean
addListener()
addListener<
Key>(eventName,listener):this
Defined in: core/lib/events/asynceventemitter.d.ts:80
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
eventName
Key
the event name
listener
(event) => void | Promise<void>
the event listener
Returns
this
this for chaining
See
EventEmitter.addListener
Inherited from
Store.addListener
addRoute()
protectedaddRoute(url,methods,executer,openapi?,override?):void
Defined in: core/lib/services/service.d.ts:177
Add a route dynamicaly
Parameters
url
string
of the route can contains dynamic part like {uuid}
methods
HttpMethodType[]
the HTTP methods
executer
Function
Method to execute for this route
openapi?
OpenAPIWebdaDefinition
the OpenAPI specification
override?
boolean
whether to override existing
Returns
void
Inherited from
Store.addRoute
authorizeClientEvent()
authorizeClientEvent(
_event,_context):boolean
Defined in: core/lib/services/service.d.ts:153
Authorize a public event subscription
Parameters
_event
string
the event name
_context
OperationContext
the execution context
Returns
boolean
true if the condition is met
Inherited from
Store.authorizeClientEvent
checkKeys()
checkKeys():
void
Defined in: core/lib/stores/store.d.ts:362
Check that keys are valid All keys of model stored in a Store must have the same type of primary key
Returns
void
Inherited from
Store.checkKeys
computeParameters()
computeParameters():
void
Defined in: core/lib/stores/store.d.ts:328
Retrieve the Models and build the models hierarchy map.
Walks parameters.models[] (the canonical flat list introduced in Task 1).
If the list is empty or contains only the default "Webda/RegistryEntry"
fallback, the hierarchy stays empty and the store will not claim any model
— preserving the pre-migration fallback behaviour for test-only or
misconfigured stores.
Returns
void
Inherited from
Store.computeParameters
emit()
emit<
Key>(event,data):Promise<void>
Defined in: core/lib/services/service.d.ts:204
Emit the event with data and wait for Promise to finish if listener returned a Promise
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
event
Key
the event name
data
StoreEvents[Key]
the data to process
Returns
Promise<void>
Inherited from
Store.emit
getARNPolicy()
getARNPolicy(
accountId):object
Defined in: aws/src/services/dynamodb.service.ts:1032
IAM policy required by the store
Parameters
accountId
string
AWS account id
Returns
object
the policy statement
Action
Action:
string[]
Effect
Effect:
string="Allow"
Resource
Resource:
string[]
Sid
Sid:
string
getCapabilities()
getCapabilities():
Record<string,any>
Defined in: core/lib/services/iservice.d.ts:61
Return the capabilities of this service.
By default returns capabilities detected at compile-time from
Returns
Record<string, any>
the result
Webda Capability-tagged
interfaces in webda.module.json.
Override to disable capabilities based on configuration:
getCapabilities() {
const caps = super.getCapabilities();
if (!this.parameters.enabled) delete caps["request-filter"];
return caps;
}
Inherited from
Store.getCapabilities
getClientEvents()
getClientEvents():
string[]
Defined in: core/lib/services/service.d.ts:144
Return the events that an external system can subscribe to
Returns
string[]
the list of results
Inherited from
Store.getClientEvents
getCloudFormation()
getCloudFormation(
deployer):object
Defined in: aws/src/services/dynamodb.service.ts:1073
CloudFormation resources for the table
Parameters
deployer
the deployer requesting the resources
Returns
object
the resources
Implementation of
CloudFormationContributor.getCloudFormation
getMaxListeners()
getMaxListeners():
number
Defined in: core/lib/events/asynceventemitter.d.ts:84
Returns
number
Inherited from
Store.getMaxListeners
getMetric()
getMetric<
T>(type,configuration):T
Defined in: core/lib/services/service.d.ts:138
Add service name label
Type Parameters
T
T = Gauge<string> | Counter<string> | Histogram<string>
Parameters
type
CustomConstructor<T, [MetricConfiguration<T>]>
the type to look up
configuration
MetricConfiguration<T>
the configuration
Returns
T
the result
Inherited from
Store.getMetric
getModels()
getModels():
ModelClass<Storable<any,any>>[]
Defined in: core/lib/stores/store.d.ts:349
All models managed by this store.
Returns
ModelClass<Storable<any, any>>[]
the array of model classes managed by this store
Inherited from
Store.getModels
getName()
getName():
string
Defined in: core/lib/services/service.d.ts:209
Get service name
Returns
string
the result string
Inherited from
Store.getName
getOpenApiReplacements()
getOpenApiReplacements():
any
Defined in: core/lib/services/service.d.ts:182
Return variables for replacement in openapi
Returns
any
the result
Inherited from
Store.getOpenApiReplacements
getOperationId()
getOperationId(
id):string
Defined in: core/lib/services/service.d.ts:167
If undefined is returned it cancel the operation registration
Parameters
id
string
the identifier
Returns
string
the result
Inherited from
Store.getOperationId
getParameters()
getParameters():
K
Defined in: core/lib/services/service.d.ts:82
Get the service parameters
Returns
K
the result
Inherited from
Store.getParameters
getRepositories()
getRepositories():
DynamoRepository<any>[]
Defined in: aws/src/services/dynamodb.service.ts:1009
Return the underlying DynamoRepository for each model this store manages
Returns
DynamoRepository<any>[]
the repositories
getRepository()
getRepository<
T>(model):Repository<T>
Defined in: aws/src/services/dynamodb.service.ts:988
Build the DynamoRepository for a model
The result is cached per model class
Type Parameters
T
T extends ModelClass<Storable<any, any>>
Parameters
model
T
the model class
Returns
Repository<T>
a repository backed by this store's DynamoDB table
Overrides
Store.getRepository
getService()
getService<
T>(name):ServicesMap[T]
Defined in: core/lib/services/service.d.ts:131
Get a service by name
Type Parameters
T
T extends keyof ServicesMap
Parameters
name
T
the name to use
Returns
ServicesMap[T]
the result map
Deprecated
Use useService, might reconsider
Inherited from
Store.getService
getState()
getState():
ServiceStates
Defined in: core/lib/services/service.d.ts:55
Get the current state
Returns
ServiceStates
the result
Inherited from
Store.getState
getUrl()
getUrl(
url,_methods):string
Defined in: core/lib/services/service.d.ts:161
Return the full path url based on parameters
Parameters
url
string
relative url to service
_methods
HttpMethodType[]
in case we need filtering (like Store)
Returns
string
absolute url or undefined if need to skip the Route
Inherited from
Store.getUrl
handleModel()
handleModel(
model):number
Defined in: core/lib/stores/store.d.ts:357
Return if a model is handled by the store
Parameters
model
ModelClass<Storable<any, any>> | Model
the model to use
Returns
number
distance from the managed class -1 means not managed, 0 manage exactly this model, >0 manage an ancestor model
Inherited from
Store.handleModel
init()
init():
Promise<DynamoStore<K>>
Defined in: core/lib/stores/store.d.ts:340
Initialize the store
Returns
Promise<DynamoStore<K>>
this for chaining
Inherited from
Store.init
initMetrics()
initMetrics():
void
Defined in: core/lib/stores/store.d.ts:344
Returns
void
Inherited from
Store.initMetrics
initOperations()
initOperations():
void
Defined in: core/lib/services/service.d.ts:186
Init the operations from
Returns
void
Operation
decorators on this service
Inherited from
Store.initOperations
listeners()
listeners(
eventName):Function[]
Defined in: core/lib/events/asynceventemitter.d.ts:139
Get all listeners for an event
Parameters
eventName
keyof StoreEvents
the event name
Returns
Function[]
the list of results
Inherited from
Store.listeners
loadCapabilities()
protectedloadCapabilities():void
Defined in: core/lib/services/service.d.ts:120
Load capabilities from webda.module.json metadata into _compiledCapabilities.
Called during resolve after dependency injection. Reads the service's
type name from parameters, looks it up in the application's module metadata
(moddas or beans section), and populates _compiledCapabilities with an
empty object for each declared capability name.
Fails silently if the application is not available (e.g., in unit tests where services are instantiated without a full application context).
Returns
void
Example
// If webda.module.json contains:
// { "moddas": { "MyApp/HawkService": { "capabilities": ["request-filter", "cors-filter"] } } }
// Then after resolve(), this.getCapabilities() returns:
// { "request-filter": {}, "cors-filter": {} }
See
getCapabilities
Inherited from
Store.loadCapabilities
log()
log(
level, ...args):void
Defined in: core/lib/services/service.d.ts:226
Parameters
level
WorkerLogLevel
to log
args
...any[]
additional arguments
Returns
void
Inherited from
Store.log
logSlowQuery()
logSlowQuery(
_query,_reason,_time):void
Defined in: core/lib/stores/store.d.ts:335
Log a slow query (placeholder for future implementation)
Parameters
_query
string
the query to execute
_reason
string
the reason
_time
number
the time
Returns
void
Inherited from
Store.logSlowQuery
off()
off<
Key>(eventName,listener):this
Defined in: core/lib/events/asynceventemitter.d.ts:116
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.off
Inherited from
Store.off
on()
on<
Key>(eventName,listener):this
Defined in: core/lib/events/asynceventemitter.d.ts:102
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.once
Inherited from
Store.on
once()
once<
Key>(eventName,listener):this
Defined in: core/lib/events/asynceventemitter.d.ts:95
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.once
Inherited from
Store.once
removeAllListeners()
removeAllListeners<
Key>(eventName?):this
Defined in: core/lib/events/asynceventemitter.d.ts:122
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
eventName?
Key
the event name
Returns
this
this for chaining
See
EventEmitter.removeAllListeners
Inherited from
Store.removeAllListeners
removeListener()
removeListener<
Key>(eventName,listener):this
Defined in: core/lib/events/asynceventemitter.d.ts:109
Type Parameters
Key
Key extends keyof StoreEvents
Parameters
eventName
Key
the event name
listener
(event) => void
the event listener
Returns
this
this for chaining
See
EventEmitter.removeListener
Inherited from
Store.removeListener
resolve()
resolve():
this
Defined in: aws/src/services/dynamodb.service.ts:917
Create the AWS client
Returns
this
this
Overrides
Store.resolve
resolveTable()
resolveTable(
model):string
Defined in: aws/src/services/dynamodb.service.ts:975
Resolve the table name for a given model class
tables[identifier] overrides the default table
Parameters
model
ModelClass
the model class
Returns
string
the table name
setMaxListeners()
setMaxListeners(
n):this
Defined in: core/lib/events/asynceventemitter.d.ts:88
Parameters
n
number
Returns
this
Inherited from
Store.setMaxListeners
setModelDefinitionHelper()
setModelDefinitionHelper(
model):void
Defined in: core/lib/stores/store.d.ts:296
Override the resolved model class for this store at runtime. Used by
the abstract StoreTest harness so test fixtures can substitute a
subclass with extra fields in place of the configured model. In
production this is a no-op the framework never calls.
Parameters
model
ModelClass
the substitute model class
Returns
void
Inherited from
Store.setModelDefinitionHelper
stop()
stop():
Promise<void>
Defined in: core/lib/services/service.d.ts:86
Shutdown the current service if action need to be taken
Returns
Promise<void>
Inherited from
Store.stop
toJSON()
toJSON():
string
Defined in: core/lib/services/service.d.ts:191
Prevent service to be serialized
Returns
string
the result
Inherited from
Store.toJSON
toString()
toString():
string
Defined in: core/lib/services/service.d.ts:91
Return service representation
Returns
string
the result
Inherited from
Store.toString
computeStores()
staticcomputeStores():void
Defined in: core/lib/stores/store.d.ts:318
Compute and register repositories for all known models based on available stores.
Called from Store.init() so each store's init triggers a recompute.
Cannot be cached: the FIRST store to init (typically Registry) would
claim every model with its fallback repository, and subsequent
stores wouldn't get a chance to claim their configured models.
Re-running is idempotent — registerRepository overwrites map entries
in place, and the resolution loop is deterministic per current
service/model state.
Returns
void
Inherited from
Store.computeStores
copyTable()
staticcopyTable(output,source,target):Promise<void>
Defined in: aws/src/services/dynamodb.service.ts:935
Copy one DynamoDB table to another
Parameters
output
WorkerOutput
worker output to report progress
source
string
source table
target
string
target table
Returns
Promise<void>