Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
This is an early release of the inkrato community edition - an open source collaboration platform for teams and communities.
This version ships will fully working core functionality (including an API) but does not have all functionality of the earlier, proprietary version.
You are free to use and modify this software for both non-commercial and commercial purposes.
You can see an instance of this software running at https:///www.inkrato.com
You will need node.js and monogdb installed. After downloading be sure to run npm install
to install required dependancies.
To configure, edit config/app.js
and config/secrets.js
with your settings and run npm start
to start the application running on port 3000.
You can also pass options at runtime via environment variables:
> PORT 80 npm start
To customize the user interface theme edit the variables in public/css/theme.less
and reload the page (the CSS will be auto-generated).
You can safely configure and commit changes to config/app.js
to your version.
IMPORTANT! You should not commit a configured secrets.js
to a public repository (this would expose private authentication details).
Any oAuth options you provide configuration details for (Twitter, Facebook, Google) will automatically appear on the sign-in screen.
Only SendGrid is currently supported for email (which must be configured for features like password reset and API Key access to work). They offer a free tier for low-volume usage.
An easy way to start working with the project is to click the button below which will clone this project and deploy a working app to Heroku:
Once deployed you will need to add Config Variables via https://dashboard.heroku.com
You can set Config Variables by clicking the Manage App button that Heroku dashboard displays after deploying your app for the first time, then selecting Settings.
NB: If only developing and testing locally specify http://localhost:3000
in place of http://YOURAPPNAME.herokuapp.com/
in the configuration steps below.
You will need to configure at least one of the following login services:
Configuration Variables:
Configuration steps:
SENDGRID_USER
and SENDGRID_PASSWORD
Config Variables with your account details.Configuration Variables:
Configuration steps:
http://YOURAPPNAME.herokuapp.com
as the Site URLConfiguration Variables:
Configuration steps:
http://YOURAPPNAME.herokuapp.com/auth/twitter/callback
Configuration Variables:
Configuration steps:
http://YOURAPPNAME.herokuapp.com/
http://YOURAPPNAME.herokuapp.com/auth/google/callback
Configuration Variables:
Configuration steps:
http://YOURAPPNAME.herokuapp.com/auth/github/callback
as the Authorization Callback URLOnce logged in you can visit your Profile page to request an API Key to be emailed to you so you can access the API endpoints.
You will need to pass the API Key as either a form or query string parameter named 'apikey' or as an HTTP header named 'x-apikey' in each request.
Viewing:
curl http://127.0.0.1:3000/api/view/1?apikey=2a94819c282bcf0811d28c33223c8c93
curl --header "x-apikey: 2a94819c282bcf0811d28c33223c8c93" http://127.0.0.1:3000/api/view/1
Creating:
curl --data "apikey=2a94819c282bcf0811d28c33223c8c93&title=Create+a+post&description=testing" http://127.0.0.1:3000/api/new
Updating:
curl --data "apikey=2a94819c282bcf0811d28c33223c8c93&title=Updating+a+post&description=testing" http://127.0.0.1:3000/api/edit/1
Each 'post' (which could be a ticket, feedback, bug report or something else, depending on how you are using inkrato) looks something like this:
{
"_id": "55436f7b921d6babf453d616",
"postId": 1,
"topic": {
"_id": "55436e4cf609fae9f3644b9b",
"path": "problems",
"name": "Problems",
"icon": "warning",
"description": "Things that aren't working properly",
"__v": 0,
"deleted": false,
"order": 0
},
"title": "This is an example title",
"description": "This is an example description",
"creator": '55476d99fa09c09938fd2bb8,
"__v": 9,
"comments": [],
"vote": {
"negative": [],
"positive": []
},
"_keywords": ["test", "example"],
"deleted": false,
"updated": "2015-05-08T14:34:20.564Z",
"created": "2015-05-01T12:20:11.862Z",
"tags": []
}
Notes:
For submitting a new post.
Parameters:
On success you should get a 200 response and a JSON representation of the new post.
Pass the postId (a number) in place of ':id' and it will return a JSON representation of the requested post..
Updates an existing post.
Parameters:
On success you should get a 200 response and a JSON representation of the updated post.
Upvotes a post. You can vote up, down or not at all on a post. Only your last voting action on counts (if you change your vote, your previous votes are discarded).
Pass the postId (a number) in place of ':id' and it will return a JSON response with the updated total score, upvotes and downvotes for that post.
Downvotes a post. You can vote up, down or not at all on a post. Only your last voting action on counts (if you cange your vote, your previous votes are discarded).
Pass the postId (a number) in place of ':id' and it will return a JSON response with the updated total score, upvotes and downvotes for that post.
Reset your vote on a post (sets it to neither an upvote or a downvote). You can vote up, down or not at all on a post. Only your last voting action on counts (if you change your vote, your previous votes are discarded).
Pass the postId (a number) in place of ':id' and it will return a JSON response with the updated total score, upvotes and downvotes for that post.
Parameters:
Example response:
{
query: String // The query string
posts: [ Post ] // An array of post objects
count: Number // Total number of matching results (max 100)
}
Returns an array of the valid Topic objects (and their id value).
Returns an array of the valid Priority objects (and their id value).
Returns an array of the valid Priority objects (and their id value).
There is currently no email address verification requirement, rate-limiting, CAPTCHA support or ability to moderate users or spam, meaning there is currently little protection against users with malicious intent.
If there are no user accounts in the system, the first user to login is granted ADMIN access (and can edit any post), but subsequent users have normal privileges and while they can create new posts they can only edit their own posts.
If you wish to grant admin access to additional users you can update the monogo db Users collection to change their role property to 'ADMIN' (other roles are not yet supported).
The inkrato platform has been used as a feedback platform for a wide range of uses - by activists (for the Labour Digital Government Review), charitable organizations (Friends of the Earth) for video game communities (PlanetSide Tracker), by private companies and by local community groups.
The release of this next generation version as open source software allows anyone to take advantage of it host a community site of their own, for free.
Commercial instances and bespoke versions are available on request. Commercial enquires should be sent to feedback@inkrato.com
This version will eventually replace the current, proprietary version of inkrato at http://feedback.inkrato.com
This software is released to the community under the MIT License.
This projects contains portions of code from the hackathon-starter project (in particular related to oAuth) by Sahat Yalkabov, which is incorporated under the MIT License.
The MIT License (MIT)
Copyright (c) 2015 inkrato Portions copyright (c) 2014 Sahat Yalkabov
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
FAQs
An open source platform for online collaboration.
The npm package inkrato receives a total of 43 weekly downloads. As such, inkrato popularity was classified as not popular.
We found that inkrato demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.