e-gov / fox Goto Github PK
View Code? Open in Web Editor NEW[Archived] An implementation of Fox Registry, the reference architecture for cloud-ready government systems
License: MIT License
[Archived] An implementation of Fox Registry, the reference architecture for cloud-ready government systems
License: MIT License
Implement a telemetry provider so data can be sent to Prometheus
The FoxAPI should be able to persist objects using a S3 interface
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 ? :)
When there is a server error for whatever reason (insufficient credentials, for example), it should be mapped to a proper error message. Currently the UI just fails quietly.
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 a suite of tests that validates API behaviour based on the yaml specification.
Investigate if any proper stats gathering solutions exist or if Kit implements any. If so, integrate.
Implement a UI that provides the following basic functionality towards the FoxAPI
The UI must adhere to these requirements
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.
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.
Move the telemetry machinery to a more generic location, make it work with the login API
Because delays in key propagation, validation must be able to use one of multiple keys. Currently only one key is supported
Create a library that is able to provide the APIs with the ability to validate Fernet tokens
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
According to spec it should be a POST to /fox/foxes/. In reality it's implemented in both web UI and REST backend as /fox/add.
Implement a release process that results in a bunch of docker containers encapsulating the following parts of the system:
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 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
LoginService startup needs to be properly documented in README.md along with what exactly does it do
Currently, the configuration file is parsed and sanitised every time it is used. It should be cached.
Migrate logging to https://github.com/op/go-logging
Implement a library that accepts
And is able to pass these on to configured telemetry implementation
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}/.
Currently Gorilla logs using the log package, it should use go-logging
Currently, if the config keys are missing, token validation fails silently without no warnings in the log
Currently the port the API is listening to is hardcoded. It should be in the configuration
Create a mock authentication provider that provides a UI to authenticate the user and is able to validate the password later.
Implement a authz service that returns a list of application-specific roles a given token has
The FoxAPI should implement following authorisation controls:
Clean up the directory structure so it contains only latest static
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
Choose an external solution that
Integrate it with the FoxAPI
Forbidden
no access permission to `/'
WEBrick/1.3.1 (Ruby/2.0.0/2014-05-08) at localhost:4000
Move from plain Gorilla implementation to https://github.com/go-kit/kit
Pull all the config files data into one config file. Rearrange config setup to user's perspective
As per https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html section 14.47 return a WWW-Authenticate header containing the list of implemented authentication methods as the challenge
WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge
Causes eyeball bleeding and strange diffs. Please consider sticking to either one.
For example, check index.html from the static folder.
Create a go-kit based login API that can mock external authentication. It should take a username as input and return a Fernet token.
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
There's only some go code and a compiled binary. The latter would be nice to remove as well :)
Choose a SSO provider and integrate the FoxAPI (validation) and FoxUI (creation and desctruction) with it.
Re-do the current StatsHandler library so that it gets telemetry from the telemetry library
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.