
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
warehouse-models
Advanced tools
warehouse-models
Data models for Warehouse.ai. Built on top of dynamodb and dynastar.
npm install --save warehouse-models
All of the objects returned from this module have the same api as
dynastar
with the schemas as mentioned later.
const dynamo = require('dynamodb-x')
const models = require('warehouse-models')(dynamo);
...
// from passing dynamodb.define to the constructor of dynastar we get...
const Build = models.Build;
const Version = models.Version;
...
Build.findFirst({ ... }, function (err, data) { .... });
*** Note that with the new dynamo release of warehouse-models
(V.6.0.0), you will to need to provide a value for locale
as part of the argument to findOne
.
Build.findOne({ name: 'email', env: 'prod'}, function (err, data) { .... }); // pre 6.0.0
Build.findOne({ name: 'email', env: 'prod', locale: 'en-US' }, function (err, data) { .... }); // post 6.0.0
All schemas for the API documentation are written using
dynamodb
's notation.
The following sections contain the column/attribute mappings for each table.
Legend:
(pk) - partition-key (sk) - sort/range key
build
)Represent an individual build of a package.
Column | Type | Summary |
---|---|---|
key (pk) | string | ${name}!${env}!${version} |
env | string | What environment is this build made for (dev, test, etc.) |
name | string | What package has been built |
version | string | What version of a package does this build represent |
buildId | string | A build's unique id |
previousBuildId | string | Hold a reference to the previous build id |
rollbackBuildIds | map | timestamp string mapped to the rollback id |
locale (sk) | string | What locale this was built for |
createDate | string | dynamodb 's createdAt |
cdnUrl | string | URL of CDN to be used as a base for all the artifacts |
fingerprints | stringSet | Primary keys for build_files , represents the unique contents of the file |
artifacts | stringSet | fingerprint/file-name |
recommended | stringSet | Possible reduced set of artifacts based on a build's configuration |
build_file
)Represent an individual file (unit) that is built during the build of an entire package.
Column | Type | Summary |
---|---|---|
fingerprint (pk) | string | The actual fingerprint of a file, like a md5 hash etc. |
buildId | string | The build_id associated with the build file |
url | string | CDN URL for the build_file |
createDate | string | dynamodb 's createdAt |
env | string | What environment is this file built for |
locale | string | What locale was this file built for |
name | string | Name of a built file |
version | string | Version of the package the file is built for |
extension | string | .js, .css. resource type extension |
filename | string | given filename for the build-file |
build_head
)Represent the head build version of an entire package.
On an npm install
, the env will have to be passed in.
Column | Type | Summary |
---|---|---|
key (pk) | string | ${name}!${env}!${version} |
name | string | What package has been build |
env | string | What environment is this build made for (dev, test, etc.) |
buildId | string | A build's unique id |
previousBuildId | string | Hold a reference to the previous build id |
rollbackBuildIds | map | timestamp string mapped to the rollback id |
createDate | string | dynamodb 's createdAt |
udpateDate | string | dynamodb 's updatedAt |
version | string | What version of a package does this build represent |
locale (sk) | string | What locale this was built for |
cdnUrl | string | URL of CDN to be used as a base for all the artifacts |
fingerprints | stringSet | Primary keys for build_files , represents the unique contents of the file |
artifacts | stringSet | fingerprint/file-name |
recommended | stringSet | Possible reduced set of artifacts based on a build's configuration |
dependent
)A dependency graph where every packaged publish can ensure that any package that depends on it can be updated. This should constantly be updated on every publish.
Column | Type | Summary |
---|---|---|
name (pk) | string | Name of a package |
dependents | stringSet | Name of packages are dependent on me |
dependent_of
)An inverse of dependent
in order for a dependent package to see what its
parent is.
Column | Type | Summary |
---|---|---|
pkg (pk) | string | Name of a package |
dependentOf | string | Name of the parent package |
release_line
)Represent all the necessary information for a given package/version to know
what needs to be deployed, considering all its dependents as well.
(When combined with Release Line Dependents
)
Column | Type | Summary |
---|---|---|
key (pk) | string | ${pkg}!${version} |
pkg | string | Name of a package |
version | string | The current version number or latest |
previousVersion | string | The previous version number |
release_line_dep
)Represent all the necessary information for a given package/version to know
what needs to be deployed, considering all its dependents as well.
(When combined with Release Line
)
Column | Type | Summary |
---|---|---|
key (pk) | string | ${pkg}!${version} |
pkg | string | Name of a package |
version | string | The current version number |
previousVersion | string | The previous version number |
dependent (sk) | string | The dependent package |
dependentVersion | string | The dependent package version |
release_line_head
)Represents the head release-line for a given package.
Column | Type | Summary |
---|---|---|
pkg (pk) | string | Name of a package |
previousVersion | string | The previous version number |
version | string | The current version number |
version
)Records of every npm publish of a package to the registry. Mostly needed for
npm install from the builder, as it will npm install a specific tag. That tag
will be tied to a specific version (look at the package table). A lookup will
occur against the version table afterwards to send down the package.json
.
Column | Type | Summary |
---|---|---|
name (pk) | string | Name of a package |
version (sk) | string | Version of a package |
value | string | Full json sent of an npm publish |
package
)Represent an entire published packaged (package.json
) to the registry.
Because the number of properties in package.json
could be infinite,
only relevant columns are described.
Examples of package.json
Column | Type | Summary |
---|---|---|
name (pk) | string | Name of a package |
version | string | Version of a package |
description | string | Package description |
main | string | Export file of a package |
gitHead | string | HEAD git sha of package |
extended | map | object of any other properties we have |
keywords | stringSet | package.json keywords array |
bundledDependencies | stringSet | any bundled dependencies of a package |
distTags | map | Mapping of tag to version e.g. { "production": "1.1.0" } |
envs | map | ? |
metadata | map | ? |
config | map | Specific configuration for package |
repository | map | Repo config of package.json |
dependencies | map | Deps of package |
devDependencies | map | DevDeps of package |
peerDependencies | map | peerDeps of package |
optionalDependencies | map | any optional dependencies |
Ensure you have localstack running local.
npm test
FAQs
Datastar models for warehouse
The npm package warehouse-models receives a total of 5 weekly downloads. As such, warehouse-models popularity was classified as not popular.
We found that warehouse-models demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.