Until now, site configurations didn't have a JSON view for Browse and Read methods, and that made it impossible to manage site configurations from a client app.
We added those JSON views in the site settings component, and the code is in the master branch. We are still refining the output as we are developing the UX and UI in the Anahita React app, so we appreciate your patience until we tag a new release. On the other hand, you can build site management workflows in your clientside apps for mobile, desktop, and web.
This update contains some critical security updates, so we advise you to update your Anahita installations. We have also improved the overall security of the Anahita domain entities.
For those of you who have custom Anahita apps on your system, you may need to update them. Here are the changes that you need to make:
We are now supporting Amazon S3 Regions. When you upgrade your installation, go to Settings Plugins Storage Amazon S3 and select the Region for your AWS S3 bucket.
We are also using 2 Google API keys for Geolocation and Google Maps APIs. That is because Anahita does geolocation on the server-side while the maps pass the key on the client-side. You can technically reuse the same key for both services, but you may want to use two different keys with different constraints. Go to Settings Apps Locations and update the keys.
How to update
Go to the root of your Anahita installation and run the following commands:
$ composer upd...
Anahita 4.4.1 Birth release provides several security fixes and enhancement. For those of you who are developing custom apps for Anahita, you need to be aware of these changes.
The REST endpoint for signing up a new person is now a POST request to https://www.yourdomain.com/people/signup.json
We have improved field validation in Anahita entities, and you can enforce minimum, and maximum length constrains to an entity attribute. To follow a convention, we are using the numbers: 3-30, 8-80, 10-100, 1,000, 5,000, and 40,000. Here is an example of how to use limit constrains in the Person entity:
In the component or plugin configuration files, we used to use the term default for the selected item in a list. We are now using the term selected, which is more appropriate for lists....
Just a heads up that the LinkedIn OAuth is no longer working because we need to update it for OAuth 2.
We also want to move away from the facebook clone type consumer social networks and customize Anahita for knowledge sharing and open science applications. Therefore, we want to add support for additional providers such as Google, GitHub, and GitLab. The development will take some time, but it will be perfect for Anahita.
Ideally, we would want to have the Anahita Connect app to be both a consumer and provider of OAuth service. We can not only authenticate Anahita users against external services such as Google or Github but also turn Anahita itself into an OAuth provider.
We may decide to remove support for Facebook for several reasons. For example, Facebook is very much a consumer service and not being used professionally in the science and education world. They also have a poor track record in terms of privacy and data collection.
People have asked us about how to scale up Anahita for hundreds of thousands or more users, also about a micro-services version of Anahita. No cloud application can by default scale up to a large number of users. Traditionally, Software-as-a-service or SAAS projects achieved this by throwing hardware and computing power at their production server. Today they use a dev-ops and release engineering infrastructure.
Two common technologies that we can use today are Docker and Kubernetes. Docker allows us to run Anahita, MySql Database, and other parts of a setup in individual containers. A group of Docker containers that communicate with each other is a cluster of containers. At the moment, Anahita is a monolith application. We want to move towards a micro-services architecture. In this article, I want to outline the first few changes that could make this leap happen.
Moving towards a client-services archite...
I started an article reflecting on Anahita's history and goals. It was supposed to be just a paragraph, but it grew to become an independent blog post. Apparently, I like to ramble on when it gets to talking about Anahita. You can find the published article here:
TL;DR after building a learning management system for an old-school education company, I was inspired to build a more democratic and distributed online learning and knowledge sharing platform. I left my job, focused on my new company, grew a team, got down to coding. At the time we thought social networking was the solution to all humanity's ailments, but then alternative facts, click-bait content, and extremist ideas started spreading around on mega giant social media. After some reflection, we decided to focus on building tools for open science and data. Our goal is to make Anahita the lightest viable unit required to set up a knowledge sharing and collaboration platform. We want brutal minimali...
We just tagged this release on Github. It doesn't provide any new features, but some significant changes in the core framework has happened that are essential for those of you who are building custom applications for Anahita.
We have merged all the parts that we were using from the legacy Nooku and Koowa frameworks and removed most of the unused code. This has made the Anahita framework API consistent everywhere. So basically:
We just reached an important milestone for Anahita. All the Nooku Koowa code which was being used are merged with the Anahita framework and most of the unused code has been removed.
Our framework is now nice and consistent and no more confusions between "K" and "An" prefixes as well as "koowa" and "anahita" identifiers. Now all the class prefixes are "An" and wherever we had "koowa" it is "anahita".
This release will be tagged version 4.4 because all your custom apps need to be updated to accommodate the recent changes.
Our special thanks to the Nooku team for we couldn't have made it this far without their framework.
Now while we're at it, could you please test installing from the master branch and let me know if everything is working properly? Thank you!
This article describes the ideal scenarios that we are aiming to achieve.
The current release of Anahita is using Bootstrap 2.2.4 which is primarily developed for desktop devices while providing a responsive mode for mobile screens. Mobile traffic is now surpassing the desktop traffic on the web so it makes sense to treat mobile users as primary users. Latest releases of #Bootstrap and #MaterialDesign have already rewritten their libraries for the mobile devices as primary users.
Quite likely we will be using the Material Design library for the next release of Anahita which seems to be more suitable for web applications compare to the Bootstrap library. We will be usi...
It's been a while since I've written about the direction to which the Anahita project is heading towards. A lot of research and silent development has been happening during the last year with a focus on maintaining the existing codebase while planning the upcoming releases.
The idea of Anahita came to me over a decade ago when I was working as the lead architect of a software project to develop a Learning Management System for K12. The system we built closely resembled the traditional education model. After we launched and used the system for a while with a large number of schools in the US and Canada, I went through the survey results. The responses indicated that we've been enforcing an archaic education model via technologically challenged administrators and teachers to students who had the least power and most technical aptitude within that environment. During the same time, I was involved with an open source project called Joomla. Collaboration with other open source developers ...
Here are some nice looking material ui dashboards. If you know of any open source ones developed in React, please share:
In the next release of Anahita we are rebuilding the UIs in #ReactJS and #MaterialUI. The php back-end will be mostly providing Restful APIs and will only be rendering pages with SEO value, otherwise Anahita will be mostly rendering as a single page app #SAP for the logged in users. If you want to start learning the technologies that we will be using here are some resources that I've studied:
This is a maintenance release that fixes the issue with video player styling and comes with some refactored code as well.
to get the update run the following command in the root of your Anahita directory:
$ composer update
If you had any questions, please start a topic in the Tribe Support group: https://www.getanahita.com/groups/107732-tribe-support
This is a maintenance release that addresses a number of issues in php 7.2.8 and MySql 5.7. You will also notice a slight speed boost and new video player in the posts. To update, simply run the following command in the root of your Anahita installation:
$ composer update
If you have experienced any issues, please start a topic in the Anahita Tribe Support group: https://www.getanahita.com/groups/107732-tribe-support
My special thanks to Nick Swinford @nicholasjohn16 for testing, reporting, and providing patches.
This is a maintenance release with a number of fixes in RESTful APIs, OAuth for Twitter and facebook, and a number of improvements and cleanups in the core library. The only new features that we've added is in the Articles app. You can now upload a cover for a published article. You can see the change log for more details:
IMPORTANT NOTE: make a backup of your database before upgrading so if things went wrong, you would be able to recover.
Now run the following command in the root of your Anahita installation:
$ composer update
then run the database migration:
$ php anahita db:migrate:up
that should do it.
If you are using the master branch, you need to pull the code and then run the database migration.
Please post your questions in the Support Group and we'll be happy to help you: https://www.getanahita.com/groups/107732-tribe-support