Git Product home page Git Product logo

drillflow's Introduction

DrillFlow

Codacy Badge Build Status Documentation Status Docker Build Status FOSSA Status

A dockerized WITSML API Server that is agnostic of the backend.

Table of Contents

Features

Drillflow is an API facade that allows Oil and Gas software systems that currently expose drilling data to leverage WITSML to exchange data between other software systems and vendors. It is packaged as a docker image or a Spring Boot application to allow for minimum hassle at deploy time. It is also intended to be extensible and horizontally scalable to handle everything from a one time bulk load to a streaming application.

WHY?!?!?

WITSML servers have been implemented in many forms and fashions over the relatively long lifespan of WITSML. The point of Drillflow is to ease the burden for software developers and system integrators to make use of WITSML data. Our goal is that if we can get this hurdle out of the way quicker, time to value is reduced.

Our goal was to implement a WITSML server on a modern stack: Java 11, Spring Boot with CXF, deployed with docker.

Requirements

  • JDK 11
  • Apache Maven 3.3 or higher
  • Git Client
  • Docker (To build the docker image)

Getting Started

Building

Execute:

mvn clean install

Running

Execute:

java -jar target/server-0.0.1-SNAPSHOT.jar

Testing

By default the service will be available at:

http://localhost:7070/Service/WMLS

Soap UI

Execute the following SOAP query to get the version:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.witsml.org/message/120">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:WMLS_GetVersion soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
   </soapenv:Body>
</soapenv:Envelope>

By default the server should return the following response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
       <ns1:WMLS_GetVersionResponse xmlns:ns1="http://www.witsml.org/wsdl/120">
           <return xmlns:ns2="http://www.witsml.org/wsdl/120">1.3.1.1,1.4.1.1</return>
       </ns1:WMLS_GetVersionResponse>
   </soap:Body>
</soap:Envelope>

Postman

For Postman, use a POST query to the same URL as stated above with encoding type as text/xml and add a header with key SOAPActionand the value http://www.witsml.org/action/120/Store.WMLS_GetVersion. Then you can use the same query as above.

CVE Checking

Drillflow includes the OWASP Dependancy checker Maven Plugin

To check if any dependencies are subject to any current CVE's run

mvn clean install -Dowasp.skip=false

Building the Docker image

Navigate to the docker directory

Execute docker build . -t hashmapinc/drillflow:latest to build the image

Once completed execute docker run -p 7070:7070 hashmapinc/drillflow:latest

Getting Help

You can also submit issues or questions via GitHub Issues here

Documentation

See The Documentation Here for the latest updates.

License

Except as otherwise noted this software is licensed under the Apache License, Version 2.0

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.

FOSSA Status

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software:

This project uses BouncyCastle and the built-in java cryptography libraries for SSL, SSH via CXF. See http://bouncycastle.org/about.html http://www.oracle.com/us/products/export/export-regulations-345813.html for more details on each of these libraries cryptography features.

drillflow's People

Contributors

randypitcherii avatar cherrera2001 avatar tessforgithub2 avatar vijaypoojari avatar sukhendumukherjee avatar kongxy10 avatar shehzadsidi avatar deepa7kumar avatar dxbgithub avatar snoodleboot avatar codacy-badger avatar fossabot avatar niaalex avatar

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.