Giter Site home page Giter Site logo

e-gov / fox Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 3.0 5.07 MB

[Archived] An implementation of Fox Registry, the reference architecture for cloud-ready government systems

License: MIT License

Go 49.74% HTML 8.78% CSS 24.50% JavaScript 15.11% Shell 1.87%

fox's People

Contributors

andreskytt avatar katremetsvahi avatar liisimotsharg avatar livenson avatar meimla avatar mkasep avatar peterjasc avatar testmkas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fox's Issues

Fix angular curly braces

On 25.4.2016 at 22:31, Mihkel Kasepuu wrote:

lehe reload on vähe uimane ainult. Viitsid taski teha, kus sisuks, replace most angular curly braces "{{}}" with ng-bind, et vähemalt ilus käima minemine oleks ? :)

Login does not return a sensible error message

If the login API endpoint is incorrectly configured, the user gets a "Error[object Object]" message instead of a sensible one. Browser console:

Failed to load resource: the server responded with a status of 404 (Not Found)
FoxRegisterController.js:20 Error Objectconfig: Objectdata: nullheaders: (d)status: 404statusText: "Not Found"proto: Object(anonymous function) @ FoxRegisterController.js:20

Implement API tests

Implement a suite of tests that validates API behaviour based on the yaml specification.

Implement FoxUI

Implement a UI that provides the following basic functionality towards the FoxAPI

  • Create a fox along with the capability of choosing the parents
  • Delete a fox
  • Modify a fox
  • Display a simple unpaginated list of foxes
  • Do password-based authentication of users using loginAPI

The UI must adhere to these requirements

  • be implemented cleanly in the browser using JS only
  • be integrated with the static site

Issue in Running the APP

Hi, I am pretty new to this architecture, I have tried the below but don't see any UI or any interface.

++ git clone
++ jekyll serve
++ Browse http://127.0.0.1:4000, I see the all the files and folders inside.. 

Am i missing something or this is what is expected ?

Please help.

Fix the Travis build

After moving the packages around, Travis fails with the following log

Using worker: worker-linux-docker-eb78426e.prod.travis-ci.org:travis-linux-6

Build system information
Build language: go
Build group: stable
Build dist: precise
Build image provisioning date and time
Thu Feb  5 15:09:33 UTC 2015
Operating System Details
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise
Linux Version
3.13.0-29-generic
Cookbooks Version
a68419e https://github.com/travis-ci/travis-cookbooks/tree/a68419e
GCC version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

LLVM version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Pre-installed Ruby versions
ruby-1.9.3-p551
Pre-installed Node.js versions
v0.10.36
Pre-installed Go versions
1.4.1
Redis version
redis-server 2.8.19
riak version
2.0.2
MongoDB version
MongoDB 2.4.12
CouchDB version
couchdb 1.6.1
Neo4j version
1.9.4
RabbitMQ Version
3.4.3
ElasticSearch version
1.4.0
Installed Sphinx versions
2.0.10
2.1.9
2.2.6
Default Sphinx version
2.2.6
Installed Firefox version
firefox 31.0esr
PhantomJS version
1.9.8
ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
Maven home: /usr/local/maven
Java version: 1.7.0_76, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.13.0-29-generic", arch: "amd64", family: "unix"

$ git clone --depth=50 --branch=master https://github.com/e-gov/fox.git e-gov/fox
Cloning into 'e-gov/fox'...
remote: Counting objects: 282, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 282 (delta 5), reused 0 (delta 0), pack-reused 255
Receiving objects: 100% (282/282), 2.46 MiB | 0 bytes/s, done.
Resolving deltas: 100% (124/124), done.
Checking connectivity... done.

$ cd e-gov/fox
$ git checkout -qf 307437e18bceaf27aa1f619035adf6f76aa0ee78

This job is running on container-based infrastructure, which does not allow use of 'sudo', setuid and setguid executables.
If you require sudo, add 'sudo: required' to your .travis.yml
See https://docs.travis-ci.com/user/workers/container-based-infrastructure/ for details.
$ eval "$(gimme 1.4.1)"
go version go1.4.1 linux/amd64

$ export GOPATH=$HOME/gopath
$ export PATH=$HOME/gopath/bin:$PATH
$ mkdir -p $HOME/gopath/src/github.com/e-gov/fox
$ rsync -az ${TRAVIS_BUILD_DIR}/ $HOME/gopath/src/github.com/e-gov/fox/
$ export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/e-gov/fox
$ cd $HOME/gopath/src/github.com/e-gov/fox
$ gimme version
v0.2.2
$ go version
go version go1.4.1 linux/amd64
$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/travis/gopath"
GORACE=""
GOROOT="/home/travis/.gimme/versions/go1.4.1.linux.amd64"
GOTOOLDIR="/home/travis/.gimme/versions/go1.4.1.linux.amd64/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
$ go get -t -v ./...
import "fox": import path does not contain a slash
package fox: unrecognized import path "fox"
github.com/gorilla/handlers (download)
github.com/gorilla/mux (download)
github.com/gorilla/context (download)
github.com/pborman/uuid (download)
Fetching https://gopkg.in/gcfg.v1?go-get=1
Parsing meta tags from https://gopkg.in/gcfg.v1?go-get=1 (status code 200)
get "gopkg.in/gcfg.v1": found meta tag main.metaImport{Prefix:"gopkg.in/gcfg.v1", VCS:"git", RepoRoot:"https://gopkg.in/gcfg.v1"} at https://gopkg.in/gcfg.v1?go-get=1
gopkg.in/gcfg.v1 (download)
github.com/onsi/ginkgo (download)
github.com/onsi/gomega (download)

The command "eval go get -t -v ./..." failed. Retrying, 2 of 3.

import "fox": import path does not contain a slash
package fox: unrecognized import path "fox"

The command "eval go get -t -v ./..." failed. Retrying, 3 of 3.

import "fox": import path does not contain a slash
package fox: unrecognized import path "fox"

The command "eval go get -t -v ./..." failed 3 times.



The command "go get -t -v ./..." failed and exited with 1 during .

Your build has been stopped.

Create a AuthN lib

Create a library that is able to provide the APIs with the ability to validate Fernet tokens

Implement command line token provisioning

Implement a command-line utility for provisioning new long-term authentication tokens for BE services. It should accept a keyfile, username and expiration period as input

Implement releases using Docker

Implement a release process that results in a bunch of docker containers encapsulating the following parts of the system:

  • load balancer
  • Static web
  • FoxAPI
  • LoginAPI
  • Mock LDAP

Implement authentication provider

Implement a simple authentication provider for AuthN. It should be able to store hashed passwords in a file, provide a command line tool for creating new passwords and provide validation services to the AuthN library.

Implement token re-issue

Implement the functionality of re-issuing tokens to the LoginService. It should accept a valid token as input and mint a new token. The idea is to have the UI refresh the session. Also implement unit tests for the functionality

Implement telemetry library

Implement a library that accepts

  • transaction start and end events
  • transaction ID, type and payload blob for each event

And is able to pass these on to configured telemetry implementation

Abuse of REST for delete operations

At the moment, spec defines deletion of a fox as a GET operation to a certain url: /fox/foxes/{foxId}/delete .
According to REST, GET should always be a non-modifying, idempotent operation. Moreover, such an approach is basically a custom RPC. Suggestion is to change spec to use rather DELETE /fox/foxes/{foxID}/.

Implement authz support in FoxAPI

The FoxAPI should implement following authorisation controls:

  • reading foxes. No role
  • creating/modifying foxes. ADMIN role
  • deleting foxes. ADMIN, MACHINE roles

Create a AuthZ lib

Create a lib that can be used by an API instance to validate an operation against an external provider. It should take Fox-specific actions as input, map them against a set of roles and validate that the username involved has those roles

Create a login API

Create a go-kit based login API that can mock external authentication. It should take a username as input and return a Fernet token.

Add sensible help message to the FoxAPI

The FoxAPI takes an optional parameter to indicate the instance name. Currently, it fails without a message when this is not present. It should present sensible usage information instead

Fix the swagger doc in jekyll

The swagger documenter thingy in jekyll is not working properly (put method in the FoxAPI) is not supported. If it can't be fixed or replaced, remove the MD page. If it can, implement the same solution for the login API

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.