sylabs / fuzzctl Goto Github PK
View Code? Open in Web Editor NEWCLI for Fuzzball, enabling management of high performance compute workflows.
License: Other
CLI for Fuzzball, enabling management of high performance compute workflows.
License: Other
We need the ability to persist configuration, such as endpoints authentication tokens. Add code to do that.
Currently, there are a number of parameters that are hard-coded in loginCmd
:
What we probably want to happen is that the user/administrator can configure a single URL, and the rest of these parameters are discovered from a well-known endpoint based on that URL. The OAuth 2.0 Authorization Server Metadata spec covers some, but not all of these parameters, so won't be suitable on its own. The back end should host a discovery endpoint that will act as a source for this info.
The parameters that will need to be discovered are (at this moment):
ClientID
oauth2.Endpoint
, which itself contains the AuthURL
and TokenURL
values. These can/should be discovered from a /.well-known/oauth-authorization-server
endpoint.listenAddr
and authPath
in the auth
packageThe CLI doesn't currently detect unknown fields in the workflow YAML. For example, this is accepted even though foo
isn't a valid key:
version: 0.1
foo: bar
workflow:
name: wf
jobs:
jobA:
image: library://alpine:latest
command: ["date"]
We should validate keys somehow (and maybe we could provide a validate
command in the CLI?)
A few Mage versioning enhancements requested in #32 (review):
Define OAuth scope(s) that will be used for authorization, and include them in the auth.NewInteractiveTokenSource()
call:
As an example of a public APIs defined scopes, GitHub has good documentation of theirs (ref).
dave@piran~/S/G/fuzzctl> fuzzctl logout
dave@piran~/S/G/fuzzctl> fuzzctl list
NAME ID STATUS
HelloWorld 5e8b3abc66507b6825c2e789 COMPLETED
dave@piran~/S/G/fuzzctl> fuzzctl create examples/helloworld.yaml
INFO[0000] Created workflow: Name: HelloWorld, ID: 5e8b46228e2fc1f370e3f135
Token still exists at ~/.config/fuzzball/config.yaml
Currently the compute client package uses structs that mimic the types of the GraphQL API, this results in issues when trying to form a query with stucts of the form:
type Job struct {
Requires []Job
}
Due to some infinite recursion.
A better approach involves using structs that are query specific in order reflect the interesting data the query and properly declare the depth of search.
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.