Re: [Neo4j] Introducing koa-neo4j - a NodeJs package for serving Neo4j as domain-specific REST APIs

2017-02-13 Thread Keyvan Mir Mohammad Sadeghi
Hi everyone,

I'm happy to announce that koa-neo4j has reached version 1.0,  and that 
it's been in use in two heavy load production apps for 2 months without any 
major issues.

I've also revamped the docs, explaining every aspect of it, and moved the 
project to a new github org:
https://github.com/assister-ai/koa-neo4j

Also the starter kit has been optimized for both development and 
production, master branch is now using ES6:
https://github.com/assister-ai/koa-neo4j-starter-kit

Let me know what you think.

Cheers,
Keyvan

On Saturday, September 17, 2016 at 7:05:40 PM UTC+3:30, Keyvan Mir Mohammad 
Sadeghi wrote:
>
> Hi Michael,
>
> I'm thrilled that there has been prior interest and implementation on the 
> subject! Thank you for sharing. Yeah, it is similar to cypher-rs in that 
> cypher-rs too serves a Cypher file on a specific route. The differences, as 
> far as I can see are:
>
>- koa-neo4j is a separate server, it's completely isolated from the 
>Neo4j instance. E.g. one can expose APIs defined in koa-neo4j while Neo4j 
>is not accessible outside the box on which it's installed
>- It is designed to bring the best of two worlds together: Cypher and 
>Javascript. With preProcess and postProcess hooks, one can modify the 
>results given-to/taken-from the Cypher endpoint. This has proved really 
>useful in my company as data representation in database stays intact while 
>custom format is needed in some presentation layers (to give you a 
> concrete 
>example on this, a website we're designing needs dashes in place of empty 
>time slots, using postProcess we augment the response from Neo4j with 
> these 
>dashes)
>- It gives structure to a project, queries are organised as files 
>(instead of strings), I can see the logic of my app in a folder that 
>contains .cyp files!
>
> Documentation is WIP, at the repo:
> https://github.com/satratech/koa-neo4j
>
> I've put together a demo at:
> https://github.com/satratech/koa-neo4j-example
> comments in `server.js` in the example are as far as I got in describing 
> how it works.
>
> Please do let me know if anything needs clarification,
> Cheers,
> K
>
> On Friday, September 16, 2016 at 5:41:10 PM UTC+4:30, Michael Hunger wrote:
>>
>> Really nice,
>>
>> do you have an an example project and perhaps a blog post or screencasts 
>> that demoes it in action?
>>
>> It's kinda similar to my github.com/jexp/cypher-rs project, that stores 
>> cypher queries at an endpoint and then allows GET/POST requests on those?
>>
>> Michael
>>
>> On Thu, Sep 15, 2016 at 12:20 PM, Keyvan Mir Mohammad Sadeghi <
>> keyvan.m...@gmail.com> wrote:
>>
>>> Hi everyone,
>>>
>>> I have developed and open-sourced a NodeJs package that allows serving 
>>> Neo4j as domain-specific REST APIs. Using this package, one can define her 
>>> own REST routes instead of endpoints (REST or Bolt) provided by Neo4j 
>>> instance.
>>>
>>> Comments and feedback very much appreciated!
>>>
>>> https://www.npmjs.com/package/koa-neo4j
>>>
>>> koa-neo4j is a framework for creating web servers that embody 
 application's logic powered by a Neo4j Graph Database 
  backend.

 In a Neo4j enabled application, conducting queries directly from client 
 side might not be the best choice:

- Database is exposed to the client, unless some explicit security 
mechanism is in place; one can *see* the innards of the database by 
 View 
page source
- There is no one server to rule them all, queries are strings, 
scattered around different clients (web, mobile, etc.)
- Third-party developers might not be familiar with Cypher

 koa-neo4j addresses all of the above issues:

- Stands as a middle layer between clients and database
- Gives structure to your server's logic in form of a file-based 
project; finally a home for Cypher! All of the clients can then talk to 
 an 
instance of this server
- Converts Cypher files to REST routes, a cross-platform web 
standard that developers are familiar with, it does so on top of the 
widely-adapted koa  server, ripe for further 
customization

 In addition it comes with *goodies*:

- Lifecycle hooks, enabling one to tweak incoming and outgoing data 
based on one's needs, allowing her to utilize the full power of 
nodejs and javascript ecosystem in the process
- Non-opinionated user management, you describe (in Cypher) how 
your users and roles are stored, the framework provides authentication 
 and 
role-based access management

 Cheers,
>>> Keyvan
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Neo4j" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to neo4j+un...@googlegroup

Re: [Neo4j] Introducing koa-neo4j - a NodeJs package for serving Neo4j as domain-specific REST APIs

2016-09-17 Thread Keyvan Mir Mohammad Sadeghi
Hi Michael,

I'm thrilled that there has been prior interest and implementation on the 
subject! Thank you for sharing. Yeah, it is similar to cypher-rs in that 
cypher-rs too serves a Cypher file on a specific route. The differences, as 
far as I can see are:

   - koa-neo4j is a separate server, it's completely isolated from the 
   Neo4j instance. E.g. one can expose APIs defined in koa-neo4j while Neo4j 
   is not accessible outside the box on which it's installed
   - It is designed to bring the best of two worlds together: Cypher and 
   Javascript. With preProcess and postProcess hooks, one can modify the 
   results given-to/taken-from the Cypher endpoint. This has proved really 
   useful in my company as data representation in database stays intact while 
   custom format is needed in some presentation layers (to give you a concrete 
   example on this, a website we're designing needs dashes in place of empty 
   time slots, using postProcess we augment the response from Neo4j with these 
   dashes)
   - It gives structure to a project, queries are organised as files 
   (instead of strings), I can see the logic of my app in a folder that 
   contains .cyp files!

Documentation is WIP, at the repo:
https://github.com/satratech/koa-neo4j

I've put together a demo at:
https://github.com/satratech/koa-neo4j-example
comments in `server.js` in the example are as far as I got in describing 
how it works.

Please do let me know if anything needs clarification,
Cheers,
K

On Friday, September 16, 2016 at 5:41:10 PM UTC+4:30, Michael Hunger wrote:
>
> Really nice,
>
> do you have an an example project and perhaps a blog post or screencasts 
> that demoes it in action?
>
> It's kinda similar to my github.com/jexp/cypher-rs project, that stores 
> cypher queries at an endpoint and then allows GET/POST requests on those?
>
> Michael
>
> On Thu, Sep 15, 2016 at 12:20 PM, Keyvan Mir Mohammad Sadeghi <
> keyvan.m...@gmail.com > wrote:
>
>> Hi everyone,
>>
>> I have developed and open-sourced a NodeJs package that allows serving 
>> Neo4j as domain-specific REST APIs. Using this package, one can define her 
>> own REST routes instead of endpoints (REST or Bolt) provided by Neo4j 
>> instance.
>>
>> Comments and feedback very much appreciated!
>>
>> https://www.npmjs.com/package/koa-neo4j
>>
>> koa-neo4j is a framework for creating web servers that embody 
>>> application's logic powered by a Neo4j Graph Database 
>>>  backend.
>>>
>>> In a Neo4j enabled application, conducting queries directly from client 
>>> side might not be the best choice:
>>>
>>>- Database is exposed to the client, unless some explicit security 
>>>mechanism is in place; one can *see* the innards of the database by View 
>>>page source
>>>- There is no one server to rule them all, queries are strings, 
>>>scattered around different clients (web, mobile, etc.)
>>>- Third-party developers might not be familiar with Cypher
>>>
>>> koa-neo4j addresses all of the above issues:
>>>
>>>- Stands as a middle layer between clients and database
>>>- Gives structure to your server's logic in form of a file-based 
>>>project; finally a home for Cypher! All of the clients can then talk to 
>>> an 
>>>instance of this server
>>>- Converts Cypher files to REST routes, a cross-platform web 
>>>standard that developers are familiar with, it does so on top of the 
>>>widely-adapted koa  server, ripe for further 
>>>customization
>>>
>>> In addition it comes with *goodies*:
>>>
>>>- Lifecycle hooks, enabling one to tweak incoming and outgoing data 
>>>based on one's needs, allowing her to utilize the full power of 
>>>nodejs and javascript ecosystem in the process
>>>- Non-opinionated user management, you describe (in Cypher) how your 
>>>users and roles are stored, the framework provides authentication and 
>>>role-based access management
>>>
>>> Cheers,
>> Keyvan
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to neo4j+un...@googlegroups.com .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Neo4j] Introducing koa-neo4j - a NodeJs package for serving Neo4j as domain-specific REST APIs

2016-09-16 Thread 'Michael Hunger' via Neo4j
Really nice,

do you have an an example project and perhaps a blog post or screencasts
that demoes it in action?

It's kinda similar to my github.com/jexp/cypher-rs project, that stores
cypher queries at an endpoint and then allows GET/POST requests on those?

Michael

On Thu, Sep 15, 2016 at 12:20 PM, Keyvan Mir Mohammad Sadeghi <
keyvan.m.sade...@gmail.com> wrote:

> Hi everyone,
>
> I have developed and open-sourced a NodeJs package that allows serving
> Neo4j as domain-specific REST APIs. Using this package, one can define her
> own REST routes instead of endpoints (REST or Bolt) provided by Neo4j
> instance.
>
> Comments and feedback very much appreciated!
>
> https://www.npmjs.com/package/koa-neo4j
>
> koa-neo4j is a framework for creating web servers that embody
>> application's logic powered by a Neo4j Graph Database
>>  backend.
>>
>> In a Neo4j enabled application, conducting queries directly from client
>> side might not be the best choice:
>>
>>- Database is exposed to the client, unless some explicit security
>>mechanism is in place; one can *see* the innards of the database by View
>>page source
>>- There is no one server to rule them all, queries are strings,
>>scattered around different clients (web, mobile, etc.)
>>- Third-party developers might not be familiar with Cypher
>>
>> koa-neo4j addresses all of the above issues:
>>
>>- Stands as a middle layer between clients and database
>>- Gives structure to your server's logic in form of a file-based
>>project; finally a home for Cypher! All of the clients can then talk to an
>>instance of this server
>>- Converts Cypher files to REST routes, a cross-platform web standard
>>that developers are familiar with, it does so on top of the widely-adapted
>>koa  server, ripe for further customization
>>
>> In addition it comes with *goodies*:
>>
>>- Lifecycle hooks, enabling one to tweak incoming and outgoing data
>>based on one's needs, allowing her to utilize the full power of nodejs
>> and javascript ecosystem in the process
>>- Non-opinionated user management, you describe (in Cypher) how your
>>users and roles are stored, the framework provides authentication and
>>role-based access management
>>
>> Cheers,
> Keyvan
>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to neo4j+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[Neo4j] Introducing koa-neo4j - a NodeJs package for serving Neo4j as domain-specific REST APIs

2016-09-16 Thread Keyvan Mir Mohammad Sadeghi
Hi everyone,

I have developed and open-sourced a NodeJs package that allows serving 
Neo4j as domain-specific REST APIs. Using this package, one can define her 
own REST routes instead of endpoints (REST or Bolt) provided by Neo4j 
instance.

Comments and feedback very much appreciated!

https://www.npmjs.com/package/koa-neo4j

koa-neo4j is a framework for creating web servers that embody application's 
> logic powered by a Neo4j Graph Database  backend.
>
> In a Neo4j enabled application, conducting queries directly from client 
> side might not be the best choice:
>
>- Database is exposed to the client, unless some explicit security 
>mechanism is in place; one can *see* the innards of the database by View 
>page source
>- There is no one server to rule them all, queries are strings, 
>scattered around different clients (web, mobile, etc.)
>- Third-party developers might not be familiar with Cypher
>
> koa-neo4j addresses all of the above issues:
>
>- Stands as a middle layer between clients and database
>- Gives structure to your server's logic in form of a file-based 
>project; finally a home for Cypher! All of the clients can then talk to an 
>instance of this server
>- Converts Cypher files to REST routes, a cross-platform web standard 
>that developers are familiar with, it does so on top of the widely-adapted 
>koa  server, ripe for further customization
>
> In addition it comes with *goodies*:
>
>- Lifecycle hooks, enabling one to tweak incoming and outgoing data 
>based on one's needs, allowing her to utilize the full power of nodejs
> and javascript ecosystem in the process
>- Non-opinionated user management, you describe (in Cypher) how your 
>users and roles are stored, the framework provides authentication and 
>role-based access management
>
> Cheers,
Keyvan

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.