Code Monkey home page Code Monkey logo

iota's People

Contributors

h4cc avatar jpgneves avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

plux h4cc

iota's Issues

Add support for verification of application layers

As part of an optional, user-triggered check, iota could be able to verify application layers to ensure applications are interacting in a correct fashion among themselves beyond merely calling the correct APIs.

For example, consider an application X consisting of a web interface application W, business logic applications B1 and B2 and a datastore interface D, with a generic utilities application U that is shared by all of them.

The desired interactions are:

  • W can call to B1 or B2
  • B1 and B2 can call to D
  • B1 and B2 cannot call W
  • D cannot call any of the above applications
  • All applications can call U

The layer definitions could be as such:

% Unspecified applications are not subject
% to the checks and can call or be called by every application.
% This is mostly to keep iota silent about third-party applications
% which generally are only called by user-defined applications.
% Layers are also specified in a top-down order.
% Each layer consists of a tuple with the layer name and the
% list of applications that belong to that layer.
{layers, [ {view, [w]},
           {business, [b1, b2]},
           {storage, [d]}
         ]}.

This information can be specified in the existing iota.config file.

This check could be run using iota check_layers <path> and would not be part of any default checks.

Produce artifacts to help describe an application

iota could produce artifacts describing the application (e.g. exposed API, git tag/commit) that can be used to inform dependency resolution systems to get exact dependencies for another application (e.g. "I want the latest version of application A that exposes foo/1 and bar/3").

example doesn't work

Your example doesn't work as priv/test_app1 doesn't get compiled. To make it work:

$ pushd priv/test_app1
$ ../../rebar compile
$ popd

and then

$ ./iota check priv/test_app1

works as expected.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.