networklookup's People
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
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
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
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
Unknown Devices On Network
Description
Context
Expected Behavior
Stories
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
Field For `Is 5G Compatible`
Preceding Stories
Description
Context
Possible Implementations
Acceptance Criteria
- [ ]
Branch
Parent
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.