kifshare

iPlant Quickshare for iRODS

License

License

BSD
Categories

Categories

Ant Build Tools
GroupId

GroupId

org.iplantc
ArtifactId

ArtifactId

kifshare
Last Version

Last Version

0.1.4
Release Date

Release Date

Type

Type

jar
Description

Description

kifshare
iPlant Quickshare for iRODS
Project URL

Project URL

http://www.iplantcollaborative.org
Source Code Management

Source Code Management

https://github.com/iPlantCollaborativeOpenSource/kifshare

Download kifshare

How to add to project

<!-- https://jarcasting.com/artifacts/org.iplantc/kifshare/ -->
<dependency>
    <groupId>org.iplantc</groupId>
    <artifactId>kifshare</artifactId>
    <version>0.1.4</version>
</dependency>
// https://jarcasting.com/artifacts/org.iplantc/kifshare/
implementation 'org.iplantc:kifshare:0.1.4'
// https://jarcasting.com/artifacts/org.iplantc/kifshare/
implementation ("org.iplantc:kifshare:0.1.4")
'org.iplantc:kifshare:jar:0.1.4'
<dependency org="org.iplantc" name="kifshare" rev="0.1.4">
  <artifact name="kifshare" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.iplantc', module='kifshare', version='0.1.4')
)
libraryDependencies += "org.iplantc" % "kifshare" % "0.1.4"
[org.iplantc/kifshare "0.1.4"]

Dependencies

compile (15)

Group / Artifact Type Version
org.clojure : clojure jar 1.5.1
org.clojure : tools.cli jar 0.2.1
org.clojure : tools.logging jar 0.2.3
org.clojure : core.memoize jar 0.5.3
org.iplantc : clj-jargon jar 0.4.2
org.iplantc : clojure-commons jar 1.4.8
cheshire » cheshire jar 5.0.1
slingshot » slingshot jar 0.10.1
compojure » compojure jar 1.1.3
ring » ring-jetty-adapter jar 1.1.6
ring » ring-devel jar 1.1.6
de.ubercode.clostache » clostache jar 1.3.0
com.cemerick » url jar 0.0.6
lamina » lamina jar 0.5.0-beta9
clj-http » clj-http jar 0.6.5

test (3)

Group / Artifact Type Version
org.clojure : tools.nrepl jar 0.2.3
clojure-complete » clojure-complete jar 0.2.3
midje » midje jar 1.4.0

Project Modules

There are no modules declared in this project.

kifshare

A simple web page that allows users to download publicly available files without an iPlant account.

Development Prerequisites

On OS X, you'll also want homebrew installed to help with getting Node.js and Grunt up and running. It'll help you stay sane. Once homebrew is installed, do the following on the command-line:

brew install node.js
<add npm to your $PATH as instructed>

You'll need an iRODS install that's of version 3.1 or later. It doesn't need to live on the same box as kifshare, but kifshare will need to be able to connect to it.

You'll need Leiningen 2 installed as well. See http://leiningen.org for more details.

Once all of the above is downloaded, installed, and configured, go into the projects top directory (the one containing package.json) and run the following:

npm install

That should download and install the development dependencies. If you have trouble running grunt or lesscss after this, try the following:

npm install -g grunt-cli
npm install -g less

Again, only do that if the bare 'npm install' doesn't work.

Upgrading to Grunt 0.4.X

We're now using Grunt 0.4.X for Kifshare, so you'll want to upgrade if you can. Upgrade instructions are available here:

http://gruntjs.com/getting-started#grunt-0.3-notes

Configuring Kifshare For Development

Create a .properties file using docs/sample.properties as a template.

Configuring mod_proxy in Apache for kifshare

All downloads flow through the /d/ endpoint in kifshare. So, to proxy download requests to another box, try the following in one of the httpd config files.

ProxyPass /quickshare/d http://kifshare-downloads.example.org:31380/d retry=0
ProxyPassReverse /quickshare/d http://kifshare-downloads.example.org:31380/d

Next, you need to set up ProxyPass entries for the UI:

ProxyPass /quickshare http://kifshare.example.org:31380 retry=0
ProxyPassReverse /quickshare http://kifshare.example.org:31380

The entries must be in that order. The lack of trailing slashes is important.

Another potential issue is the "DefaultType" setting in /etc/httpd/conf/httpd.conf. If it's set to text/plain, then kifshare's UI will show up as plain text. If it's set to None, then kifshare's UI works as expected. So, set the DefaultType to None in /etc/httpd/conf/httpd.conf, like in the following:

DefaultType None

Building Kifshare For Development

You'll build kifshare with Grunt. Grunt, in turn, calls Leiningen when necessary.

If you're only working on the Clojure portion of the code, then you only need to call this to build the resources directory:

grunt build-resources

Then you can use Leiningen as you normally would.

If you want to do a build of both the front-end and the clojure code:

grunt build-all

If you want to clean everything (including resources):

grunt clean-all

If you only want to clean the resources directory:

grunt shell:clean_resources

The following commands are also included:

grunt shell:lein_clean
grunt shell:lein_deps
grunt shell:lein_uberjar

Running Kifshare

If you're working out of a git checkout, then you can run the following once the resources directory is built (see the preceding section):

lein run --config </path/to/config/file>

If you're running from a jar, then you should be able to run the following:

java -jar <kifshare-jar> --config </path/to/config>

If you're running it from the RPM with Zookeeper, then run the following:

sudo /sbin/service kifshare start

Downloading through a browser

Hit kifshare with a browser, setting the path portion of the URL to the name of the publicly available iRODS ticket.

http://<kifshare-host>:<kifshare-port>/<ticket-name>

Once the kifshare page comes up, click on the big "Download" button.

Downloading with curl

This requires you to know the name of the file referred to by the ticket.

curl http://<kifshare-host>:<kifshare-port>/d/<ticket-name>/<filename>
org.iplantc

iPlant Collaborative Open Source

This is an old github organization. The new organization is github.com/cyverse

Versions

Version
0.1.4