Giter Site home page Giter Site logo

gchq / gaffer-tools Goto Github PK

View Code? Open in Web Editor NEW
47.0 20.0 29.0 74.78 MB

gaffer-tools is deprecated. Use https://github.com/gchq/gafferpy instead

License: Apache License 2.0

Java 16.73% Python 80.42% Shell 0.23% Jupyter Notebook 1.82% Makefile 0.08% Batchfile 0.10% Jinja 0.62%
gaffer ui python accumulo deployment

gaffer-tools's Introduction

Gaffer Tools

Gaffer Tools is deprecated.
Gafferpy has moved to its own repository: gchq/gafferpy.
The last release of the Gaffer UI was in gaffer-tools-1.23.0.

License

Copyright 2016-2023 Crown Copyright

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

gaffer-tools's People

Contributors

c015dariu avatar ctas582 avatar d47853 avatar dependabot[bot] avatar g609bmsma avatar gaffer01 avatar gchqdeveloper314 avatar github-actions[bot] avatar hchho avatar j8934893 avatar javadev001001 avatar jpelbertrios avatar l50741 avatar lb324567 avatar m29827 avatar m316257 avatar m55624 avatar m607123 avatar macenturalxl1 avatar n288tjyrx avatar p013570 avatar p3430233 avatar r32575 avatar sameshl avatar t511203 avatar t616178 avatar t92549 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gaffer-tools's Issues

Cleaner example for your README.md.

In your README, you have:

start = '1'; end = '3'; g.V(start).hasLabel('id').store('v').repeat(bothE().where(without('e')).store('e').inV().hasLabel('id').where(without('v'))).until{it.get().id() == end || it.loops() == 6}.path().filter{it.get().last().id() == end}

This can be written without lambdas and bit cleaner as:

g.V('1').hasLabel('id').
  repeat(bothE().otherV().hasLabel('id').simplePath()).
    until(hasId('3').or().loops().is(6)).
  hasId('3').path()

Things to note:

  1. You don't need to store "v" and "e" as simplePath() will ensure you don't go back to an already seen edge/vertex.
  2. You don't need lambdas in your until().
  3. If the end of the path must have an id of end, then simply hasId(end).
  4. bothE().otherV() goes in both directions. If you don't care about the edges in your final path data structure, just use both().
  5. If you want to be fancy, you could do ...path().by('name') and that would return the path where instead of the vertices, you would have name properties from those vertices. Easier for the human to read the result. http://tinkerpop.apache.org/docs/current/reference/#path-step

schema-builder add button for json import/export from/to file

On the 'schema' tab in the UI builder it would be good to have a 'save to file' button for each of the 'data schema', 'data types' and 'store types'

The user should be able to specify the path to the file

And similar for uploading a local file.

Fix Road Use Example walkthrough

Currently the last part of the walkthrough doesn't work.

This is due to the bug in Gaffer gh-642
error message is:

com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: org.apache.catalina.connector.CoyoteInputStream@15ca496; line: 1, column: 427] (through reference chain: uk.gov.gchq.gaffer.operation.OperationChain["operations"]->Object[][0]->uk.gov.gchq.gaffer.operation.impl.get.GetElements["view"]->uk.gov.gchq.gaffer.data.elementdefinition.view.View["edges"]->java.util.LinkedHashMap["RoadUse"]->uk.gov.gchq.gaffer.data.elementdefinition.view.ViewElementDefinition["preAggregationFilterFunctions"]->java.util.ArrayList[0]->uk.gov.gchq.gaffer.function.context.ConsumerFunctionContext["selection"]->java.util.ArrayList[0])

Update group ID

Update group ID to uk.gov.gchq.gaffer to match the main project.

Update schema builder UI to make stricter use of types

Using typescript type definitions properly rather than assigning everything to "any" should create more robust code. Warnings and errors should display if the variables are given values that don't match the interface they are given.

Fix slider scripts

Changing the artifactId from gaffer-slider to slider has broken the 'quick start' scripts

Add Python checks to Travis

Travis should run some checks to determine whether the Python shell is ready for release (unit tests, pylint/PEP8 checks etc)

Create a federated Gaffer REST API that delegates to multiple Gaffer REST APIs

             [ -------- Federated Gaffer REST API ----------  ]
                |                    |                     |
    [Gaffer REST API 1]    [Gaffer REST API 2]    [Gaffer REST API 3]
                |                    |                     |
    [Accumulo Store 1]     [Accumulo Store 2]      [HBase/Other Store]

Gaffer operations executed on this federated rest api would be delegated to multiple Gaffer REST APIs

Initially this should be implemented to assume that element groups are not shared across the different REST API. This means there is no need for summarising/merging the results across the REST APIs. The rest api would hold a map of element group to Gaffer url, which is used to delegate the operations to the REST API urls. This map of urls should be able to be updated without the rest api needing to be restarted.

Prior to delegating the operation chains to the URLs the requests need to be heavily validated - to check for things such as:
The Schema for each Store is compatible - e.g Element groups should not be shared across stores.
The functions used in an operation View are available for delegate store

Also, if an Operation View is provided it should be chopped up based on the Element groups in the View and the Element groups in the REST API schemas.

Deserialisation/Serialisation of json operation chains and results should be prevented. This will improve performance and mean the federated REST API will not require all custom Functions and Operations to be present on the classpath. E.g. if [Gaffer REST API 3] has a custom Filter function 'Function3' and a user executes an operation chain including Function3 then if the federated REST API tries to deserialise it into the java Function3 object it would fail if the Function3 wasn't on the class path.

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.