Giter VIP home page Giter VIP logo

networklookup's People

Contributors

mpzinke avatar

Watchers

 avatar

networklookup's Issues

Authorization Header For Services

Description

As a user,
I want a field for Authorization type & data for my Services,
So that I can save authorization info in my Lookups.

Endpoints MVP

Description

A set of REST API endpoints that connect to a Postgres DB. The set of currently desired ones can be found in the main README.md.

Context

Providing alternative ways to manage IPs and information about the devices and service running on a home network would help make home automation more dynamic. To achieve the primary function of getting IP information, a way of interfacing needs to be setup. In this case, the primary method is a REST API in Rust.

Expected Behavior

When an HTTP request is made to the service's IP and port, the program queries the DB for the information, formats it as a JSON, and responds with it.

Stories

Endpoints For Services

Description

As a Home Automator,
I want endpoints for services on my network,
So that I can determine the appropriate IP-port for a service.

Context

Home automation can be made more dynamic through better IP/Network management. In order to enable this, external devices need a way of interfacing with the IP/Network information system.

Possible Implementations

Follow the same pattern as previously done for other endpoints

Acceptance Criteria

  • Enpoints for services list, services by network, services by network & IP

Branch

ServiceEndpoints

Parent

DB Interfacing

Preceding Stories

#2

Description

As a developer,
I want a way to connect the endpoints to the DB and make queries that return data that can be easily manipulated,
So that I can enable the production of endpoints returning complete data.

Context

Data is stored in the DB for the endpoints to query, and needs a way to get from the DB to the REST API.

Possible Implementations

Use a Rust library that interfaces with a Postgres DB. Write out the queries and structs for the tables.

Acceptance Criteria

  • Necessary queries written
  • Structs for queried data written
  • Queries can be made to the Postgres DB from the Rust program.

Branch

DB-Interface

Parent

#1

Add Security

Description

Context

Expected Behavior

Stories

DB Setup

Description

As a developer,
I want a Postgres DB setup with schema and populated data,
So that I can later interface with it and process whatever data I need to for the API.

Context

Data is stored in the DB for the endpoints to query.

Possible Implementations

Write out the schema and data. Use a package manager to install a Postgres DB. Then use a CLI to add the schema & data to the DB.

Acceptance Criteria

  • Postgres DBMS is setup & can be interfaced with
  • Schema contains necessary tables (Group, Network, IP, Service, Group-IP)
  • Data created

Branch

DB-Setup

Parent

#1

REST API Endpoints

Preceding Stories

Description

As a Home Automator,
I want an interface to get data stored in the DB about my IP data,
So that I can make quick API calls to determine information about IPs and devices on my home network.

Context

Home automation can be made more dynamic through better IP/Network management. In order to enable this, external devices need a way of interfacing with the IP/Network information system.

Possible Implementations

Create a REST API that connects the the DB Interfacer

Acceptance Criteria

  • API endpoints in README.md provide JSON data on the IP/Networks
  • MVP Endpoints
    • /api/v1.0/network/label/{network label}/ip/group/label/{group label}: Get all IPs for a group
    • /api/v1.0/network/label/{network label}/ip/address/{ip address}
    • /api/v1.0/network/label/{network label}/ip/label/{ip label}

Branch

Endpoints

Parent

#1

Ping

Description

Ping to see if a device is currently reachable

Context

Expected Behavior

Stories

Endpoints Iteration 2

Preceding Stories

Description

As a Home Automator,
I want an interface to get data stored in the DB about my IP data,
So that I can make quick API calls to determine information about IPs and devices on my home network.

Context

Home automation can be made more dynamic through better IP/Network management. In order to enable this, external devices need a way of interfacing with the IP/Network information system.

Possible Implementations

Create a REST API that connects the the DB Interfacer

Acceptance Criteria

Create endpoints for

  • "/api/v1.0/group": "Queries for groups"
  • "/api/v1.0/groups": "List all groups"
  • "/api/v1.0/group/id": "Get a group by ID path"
  • "/api/v1.0/group/id/{id}": "Get a group by ID"
  • "/api/v1.0/group/label": "Queries for group based on label"
  • "/api/v1.0/group/label/{label}": "Get a group by label"
  • "/api/v1.0/network": "Queries for networks"
  • "/api/v1.0/network/all": "List all networks"
  • "/api/v1.0/network/id": "Queries for a network based on network id"
  • "/api/v1.0/network/id/{id}": "Get a network by id"
  • "/api/v1.0/network/id/{id}/ip": "Queries for IP based on IPs and network id"
  • "/api/v1.0/network/id/{id}/ips": "List all IPs for network id"
  • "/api/v1.0/network/id/{id}/ip/id": "Queries for IP based on IP id and network id"
  • "/api/v1.0/network/id/{id}/ip/id/{id}": "Get an IP by IP id and network id"
  • "/api/v1.0/network/id/{id}/ip/label": "Queries for IP based on IP label and network id"
  • "/api/v1.0/network/id/{id}/ip/label/{label}": "Get an IP by IP label and network id"
  • "/api/v1.0/network/id/{id}/ips/group": "Queries for IPs based on group and network id"
  • "/api/v1.0/network/id/{id}/ips/group/id": "Queries for IPs based on group id and network id"
  • "/api/v1.0/network/id/{id}/ips/group/id/{id}": "List all IPs based on group id and network id"
  • "/api/v1.0/network/id/{id}/ips/group/label": "Queries for IPs based on group label and network id"
  • "/api/v1.0/network/id/{id}/ips/group/label/{label}": "List all IPs based on group label and network id"
  • "/api/v1.0/network/label": "Queries for a network based on network label"
  • "/api/v1.0/network/label/{label}": "Get a network by label"
  • "/api/v1.0/network/label/{label}/ip": "Queries for IP based on IPs and network label"
  • "/api/v1.0/network/label/{label}/ip/id": "Queries for IP based on IP id and network label"
  • "/api/v1.0/network/label/{label}/ip/id/{id}": "Get an IP by IP id and network label"
  • "/api/v1.0/network/label/{label}/ip/label": "Queries for IP based on IP label and network label"
  • "/api/v1.0/network/label/{label}/ip/label/{label}": "Get an IP by IP label and network label"
  • "/api/v1.0/network/label/{label}/ips": "List all IPs for network label"
  • "/api/v1.0/network/label/{label}/ips/group": "Queries for IPs based on group and network label"
  • "/api/v1.0/network/label/{label}/ips/group/id": "Queries for IPs based on group id and network label"
  • "/api/v1.0/network/label/{label}/ips/group/id/{id}": "List all IPs based on group id and network label"
  • "/api/v1.0/network/label/{label}/ips/group/label": "Queries for IPs based on group label and network label"
  • "/api/v1.0/network/label/{label}/ips/group/label/{label}": "List all IPs based on group label and network label"

Branch

Endpoints

Parent

#1

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.