violet_rails

an app engine for your business. Seamlessly implement business logic with a powerful API. Out of the box CMS, blog, forum and email functionality. Developer friendly & easily extendable for your next SaaS/XaaS project. Built with Rails 6, Devise, Sidekiq & PostgreSQL

MIT License

Stars
96
Committers
5

Bot releases are hidden (Show)

violet_rails - 0.9.65

Published by donrestarone almost 2 years ago

What's Changed

[feature] associate multiple snippets with API #show and #index

Addresses #1122

The snippet option needs to be provided in order to render a snippet other than the default index or show snippet. The default snippet will be rendered if snippet option is not provided.

Rendering an alternative index snippet

An alternative snippet movies-staging for movies API namespace can be rendered in the following way:

{{ cms:helper render_api_namespace_resource_index 'movies', { snippet: 'movies-staging' } }}

Rendering an alternative show snippet

An alternative snippet movies-staging-show for movies API namespace can be rendered in the following way:

{{ cms:helper render_api_namespace_resource 'movies', { snippet: 'movies-staging' } }}

https://user-images.githubusercontent.com/73725297/204227285-863ccc4a-536b-425d-865c-959e1f4e10bd.mp4

Co-authored-by: Mushfiq Rahman [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.64...0.9.65

violet_rails - 0.9.64

Published by donrestarone almost 2 years ago

What's Changed

[feature] Ability to mention user in forum

Addresses: #1173

Demo:

https://user-images.githubusercontent.com/18470532/199933805-7669b727-cd76-43ad-9125-c8be379973a6.mov

https://user-images.githubusercontent.com/18470532/200725154-1e9ce5f7-c7ed-4ec3-8b46-9c9bc232567f.mov

Co-authored-by: Ravi [email protected]
Co-authored-by: Regaron [email protected]
Co-authored-by: Prashant Khadka [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.63...0.9.64

violet_rails - 0.9.63

Published by donrestarone almost 2 years ago

What's Changed

[feature] Unify form and renderer

Addresses #1123

rendering-tab

https://user-images.githubusercontent.com/73725297/204039514-0b465231-10a6-40e1-a9e2-0f2a0e5eddaa.mp4

Co-authored-by: Mushfiq Rahman [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.62...0.9.63

violet_rails - 0.9.62

Published by donrestarone almost 2 years ago

What's Changed

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.61...0.9.62

violet_rails - 0.9.61

Published by donrestarone almost 2 years ago

What's Changed

[feature] 2FA + ability to enforce 2FA in Subdomain

To enable email 2FA, run the following script in a web console:

Subdomain.all.each{ |subdomain| subdomain.update(enable_2fa: true)}

Addresses: #1081

Demo:

https://user-images.githubusercontent.com/55496123/195891042-e9508cb0-0d07-4b1c-9e1c-f0fcfc2659a4.mov

Co-authored-by: Er. Ajay Shrestha [email protected]
Co-authored-by: Ajay Shrestha [email protected]
Co-authored-by: Prashant Khadka [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.60...0.9.61

violet_rails - 0.9.60

Published by donrestarone almost 2 years ago

What's Changed

Addresses: https://github.com/restarone/violet_rails/issues/1199

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.59...0.9.60

violet_rails - 0.9.59

Published by donrestarone almost 2 years ago

What's Changed

[feature] ability to define forum email notification strategy

Addresses : https://github.com/restarone/violet_rails/issues/1169

Demo video :

https://user-images.githubusercontent.com/39255317/198045816-b7ee4333-e5a3-4875-9a18-0ed5be1f9df4.mov

Co-authored-by: Sushmit Rajaure [email protected]

  • fix(): email notification strategy implemented also while creating new forum thread

Co-authored-by: Sushmit Rajaure [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.58...0.9.59

violet_rails - 0.9.58

Published by donrestarone almost 2 years ago

What's Changed

Addresses: https://github.com/restarone/violet_rails/issues/1144

⚠️ after deployment UniqueStringAggregator and VacuumJob both need to be updated with the code in test/fixtures/external_api_clients.yml (TLDR; the fix is to call ApiResource for transactions instead of Activerecord::Base )

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.57...0.9.58

violet_rails - 0.9.57

Published by donrestarone almost 2 years ago

violet_rails - 0.9.56

Published by donrestarone almost 2 years ago

What's Changed

[feature] link to associated CMS entity in API

Addresses: https://github.com/restarone/violet_rails/issues/974

Demo

https://user-images.githubusercontent.com/25191509/199165299-25d1e0fb-0cd1-49a4-8e66-224bca2fa660.mov

  • feat(): sortable by CMS associations in api-namespaces/index view

  • feat(): show snippets used under API HTML renderer as associated cms-entities

  • feat(): fix for some API HTML renderer not being detected in CMS associations

Co-authored-by: Prashant [email protected]
Co-authored-by: Prashant Khadka [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.55...0.9.56

violet_rails - 0.9.54

Published by donrestarone almost 2 years ago

What's Changed

[Feature] Social Sharing Metadata Option in API Namespace (#1174)

Addresses : https://github.com/restarone/violet_rails/issues/1166

Demo:

https://user-images.githubusercontent.com/55496123/198818845-c131640a-9dbb-4e57-9113-b45b713f9d48.mov

  • image height and weight added for metatags

Co-authored-by: Er. Ajay Shrestha [email protected]
Co-authored-by: Ajay Shrestha [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.53...0.9.54

violet_rails - 0.9.53

Published by donrestarone almost 2 years ago

What's Changed

Dokku integration for deploying review apps

Addresses: https://github.com/restarone/violet_rails/issues/1127

Points to remember

  • The base branch of the PR needs to be master/dev/rc for the dokku CI to run.

  • The url of the new review-app will be: review-[PR number].violet-test.net. A comment will be added after the deployment of review-app is successful as in image below:
    image

  • Since the database of review-app is a clone of database of heroku's violet-rails, you can use the same login credentials used in heroku to login.

Conditions when review-apps is deployed

  • While creating the PR which has label: deploy-review-app
  • When a closed PR with label: deploy-review-app is reopened
  • While labeling the open PR with deploy-review-app
  • When new commits are pushed to the open PR which already have the label: deploy-review-app

Conditions when review-apps is destroyed

  • While closing/mergin the PR which has label: deploy-review-app
  • While unlabeling the open PR with deploy-review-app

Conditions when changes from the PR is deployed to the main-app (violet-test.net)

  • When a new commit is pushed to the branch: master/dev/rc

Demo

https://user-images.githubusercontent.com/25191509/198102072-7ad7a35a-8287-4a49-9a27-43a9495478a0.mp4

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.52...0.9.53

violet_rails - 0.9.52

Published by donrestarone almost 2 years ago

What's Changed

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.51...0.9.52

violet_rails - 0.9.51

Published by donrestarone about 2 years ago

What's Changed

[feature] enforce loading assets over HTTPS

Addresses: #1149

  • Add config to load assets over https for staging and production.

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.50...0.9.51

violet_rails - 0.9.50

Published by donrestarone about 2 years ago

What's Changed

Addresses #1120

Transcript parser plugin

This plugin takes a video transcript and generates a clean version of it by removing numbers, timestamps, and names. Given a transcript like this:

1
00:00:00,300 --> 00:00:02,167
[sally]: i'm in los angeles and

2
00:00:01,920 --> 00:00:02,102
[bobby]: okay

3
00:00:03,151 --> 00:00:04,737
[sally]: maybe possibly

4
00:00:05,780 --> 00:00:13,613
[bobby78]: $ oh maybe ye so nice an is a
supporter financial supporter of hollows

5
00:00:13,345 --> 00:00:15,510
[sally]: 10 s yeah
10 hello world
hi there
$10 in my wallet

The plugin will parse the transcript and generate a clean version of it:

i'm in los angeles and okay maybe possibly $ oh maybe ye so nice an is a supporter financial supporter of hollows 10 s yeah 10 hello world hi 
there $10 in my wallet

raw-and-parsed-transcripts

Metadata

The plugin requires the following metadata:

INPUT_STRING_PROPERTY: the name of the property that points to the raw unchanged transcript OUTPUT_STRING_PROPERTY: the name of the property to which the plugin will write the parsed clean version of the transcript

  • INPUT_STRING_PROPERTY and OUTPUT_STRING_PROPERTY must exist on the API resources of the API namespace that the plugin will run against
  • INPUT_STRING_PROPERTY and OUTPUT_STRING_PROPERTY cannot be the same property (no overwriting is allowed)

transcript-parser-metadata

Deciding if a transcript needs to be parsed

Each API resource should have a boolean property called transcript_parsed. The plugin uses this property to check if a transcript needs to be parsed. If transcript_parsed is true, then the plugin will not parse that transcript. Once the transcript of an API resource is parsed, the plugin sets its transcript_parsed property to true.

Video demo

https://user-images.githubusercontent.com/73725297/191982004-3e257496-c2f6-481a-8ecc-1812b3bac6c6.mp4

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.49...0.9.50

violet_rails - 0.9.49

Published by donrestarone about 2 years ago

What's Changed

[feature] Unique string aggregator plugin (#1133) (#1143)

Addresses #1084

This plugin takes an array of strings and creates a list of API resources (one per unique string value) for an output API namespace. For example, for two arrays - tags: ["animation", "family", "martial arts"],tags: ["animation", "family"] - in movies API namespace, 3 API resources will be created under movie_tags (the output API namespace in this case):

{ "tags" => "animation", "representation" => "Animation" },
{ "tags" => "family", "representation" => "Family" },
{ "tags" => "martial arts", "representation" => "Martial Arts" }

https://user-images.githubusercontent.com/73725297/192908391-21560b30-1977-4451-ae15-5564d4289eb4.mp4

Metadata

The following metadata properties are required:

  • INPUT_PROPERTY: the name of the property that is mapped to an array of strings in the input API namespace (the API namespace that the plugin will run against)
  • OUTPUT_API_NAMESPACE: the slug of the API namespace under which API resources will be created
  • PRISTINE: a boolean indicating whether or not the plugin will run in pristine mode

If PRISTINE is true, then existing API resources in the output API namespace will be deleted after creating new API resources. If PRISTINE is false, then old API resources will not be deleted and new ones will be created only for new unique strings.

metadata

Pristine mode

https://user-images.githubusercontent.com/73725297/192908436-351d44b3-c738-4973-b851-7f2529008aed.mp4

Non-pristine mode

https://user-images.githubusercontent.com/73725297/193096865-63780536-dad0-4753-82ef-1e834c1ed362.mp4

Shape of the output API namespace

Each API resource of the output API namespace must have the following two properties:

  • <INPUT_PROPERTY>: this property must be the same as INPUT PROPERTY provided in the plugin metadata
  • representation: the value of this property can be used as the display text for an <option></option> HTML element

output-api-namespace

Co-authored-by: Mushfiq Rahman [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.48...0.9.49

violet_rails - 0.9.48

Published by donrestarone about 2 years ago

What's Changed

[feature] API resource query match any one condition

Addresses: #1137

Screenshot:

Passing the third argument, 'ANY' in build_jsonb_query or jsonb_search method will generate the clause requiring only one condition to be satisfied.

Demo

https://user-images.githubusercontent.com/18470532/194049679-a9ea69cf-4af7-4902-a371-31a51c7ae0bf.mov

https://user-images.githubusercontent.com/18470532/194049874-3987e65b-b656-4b51-91f1-13e3476018ef.mp4

How to Use

To filter satisfying any one condition:

{{ cms:helper render_api_namespace_resource_index 'slug', scope: { properties: { property: 'value', another_property: 'value' }, match: 'ANY' } }}

Co-authored-by: Regaron [email protected]

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.47...0.9.48

violet_rails - 0.9.47

Published by donrestarone about 2 years ago

What's Changed

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.46...0.9.47

[feature] Allow active support / view helpers in API Renderer

Addresses: https://github.com/restarone/violet_rails/issues/1109

Screenshots:

violet_rails - 0.9.46

Published by donrestarone about 2 years ago

What's Changed

[feature] sort by attribute in API Namespace resource index

Addresses #1119

https://user-images.githubusercontent.com/35935196/193003658-6d7166b6-35ec-4837-af1c-11ac12b9d095.mp4

Full Changelog: https://github.com/restarone/violet_rails/compare/0.9.45...0.9.46

Badges
Extracted from project README
Brakeman Scan Heroku Deployments AWS EC2 Deployments
Related Projects