Neurotic Pantaloon Maker

    warehouse-models

    6.0.2 • Public • Published

    warehouse-models

    Version npm License npm Downloads Build Status Dependencies

    Data models for Warehouse.ai. Built on top of dynamodb and dynastar.

    Install

    npm install --save warehouse-models

    Usage

    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

    API

    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 (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 (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 (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 (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 (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 (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 Dependents (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 (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 (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 (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

    Test

    Ensure you have localstack running local.

    npm test

    Install

    npm i warehouse-models

    DownloadsWeekly Downloads

    45

    Version

    6.0.2

    License

    MIT

    Unpacked Size

    66.5 kB

    Total Files

    41

    Last publish

    Collaborators

    • jgowdy
    • ibrandao
    • decompil3d
    • jpage
    • kinetifex
    • rxmarbles
    • kquerna
    • 3rdeden
    • msluther
    • jwilhelm
    • jcrugzz
    • dcousineau
    • swaagie
    • indexzero
    • wjarvis