<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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.
-->
  <Project rdf:about="http://knox.apache.org">
    <created>2014-06-12</created>
    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0"/>
    <name>Apache Knox</name>
    <homepage rdf:resource="http://knox.apache.org" />
    <asfext:pmc rdf:resource="http://knox.apache.org" />
    <shortdesc>A REST API Gateway for Hadoop Services</shortdesc>
    <description>The Apache Knox Gateway is a REST API Gateway for interacting with Hadoop clusters.

The Knox Gateway provides a single access point for all REST interactions with Hadoop clusters.

In this capacity, the Knox Gateway is able to provide valuable functionality to aid in the control,
integration, monitoring and automation of critical administrative and analytical needs of the enterprise.

Authentication (LDAP and Active Directory Authentication Provider)
Federation/SSO (HTTP Header Based Identity Federation)
Authorization (Service Level Authorization)
Auditing
While there are a number of benefits for unsecured Hadoop clusters,
the Knox Gateway also complements the kerberos secured cluster quite nicely.

Coupled with proper network isolation of a Kerberos secured Hadoop cluster,
the Knox Gateway provides the enterprise with a solution that:

Integrates well with enterprise identity management solutions
Protects the details of the Hadoop cluster deployment (hosts and ports are hidden from endusers)
Simplifies the number of services that clients need to interact with</description>
    <bug-database rdf:resource="http://issues.apache.org/jira/browse/KNOX" />
    <mailing-list rdf:resource="http://knox.apache.org/mail-lists.html" />
    <download-page rdf:resource="https://cwiki.apache.org/confluence/display/KNOX/Release+1.1.0" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/big-data" />
    <repository>
      <GitRepository>
        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/knox.git"/>
      </GitRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Apache Knox Team</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@knox.apache.org"/>
      </foaf:Person>
    </maintainer>
    <release>
      <Version>
        <name>Apache Knox Gateway 1.1.0</name>
        <created>2018/07/30</created>
        <revision>1.1.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 1.0.0</name>
        <created>2018/02/07</created>
        <revision>1.0.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.14.0</name>
        <created>2017/12/14</created>
        <revision>0.14.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.13.0</name>
        <created>2017/08/19</created>
        <revision>0.13.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.12.0</name>
        <created>2017/03/20</created>
        <revision>0.12.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.11.0</name>
        <created>2016/12/28</created>
        <revision>0.11.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.10.0</name>
        <created>2016/11/07</created>
        <revision>0.10.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.9.1</name>
        <created>2016/08/04</created>
        <revision>0.9.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.9.0</name>
        <created>2016/04/24</created>
        <revision>0.9.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.8.0</name>
        <created>2016/02/04</created>
        <revision>0.8.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.7.0</name>
        <created>2015/12/23</created>
        <revision>0.7.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.6.0</name>
        <created>2015/04/30</created>
        <revision>0.6.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.5.0</name>
        <created>2014/11/06</created>
        <revision>0.5.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.4.0</name>
        <created>2014/04/15</created>
        <revision>0.4.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.3.0</name>
        <created>2013/10/22</created>
        <revision>0.3.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.2.0</name>
        <created>2013/04/23</created>
        <revision>0.2.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Knox Gateway 0.1.0</name>
        <created>2012/12/30</created>
        <revision>0.1.0</revision>
      </Version>
    </release>
  </Project>
</rdf:RDF>
