Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Solidus is a complete open source e-commerce solution built with Ruby on Rails. It is a fork of Spree.
Solidus actually consists of several different gems, each of which are maintained
in a single repository and documented in a single set of
online documentation. By requiring the
solidus
gem you automatically require all
of the necessary gem dependencies which are:
solidus_api
(RESTful API)solidus_frontend
(Cart and storefront)solidus_backend
(Admin area)solidus_core
(Essential models, mailers, and classes)solidus_sample
(Sample data)All of the gems are designed to work together to provide a fully functional
e-commerce platform. It is also possible, however, to use only the pieces you
are interested in. For example, you could use just the barebones
solidus_core
gem and perhaps combine it with your own
custom frontend instead of using solidus_frontend
.
Try out Solidus with one-click on Heroku:
To add solidus, begin with a rails 4.2 application. Add the following to your Gemfile.
gem 'solidus'
gem 'solidus_auth_devise'
Run the bundle
command to install.
After installing gems, you'll have to run the generators to create necessary configuration files and migrations.
bundle exec rails g spree:install
bundle exec rake railties:install:migrations
Run migrations to create the new models in the database.
bundle exec rake db:migrate
Finally start the rails server
bundle exec rails s
The solidus_frontend
storefront will be accessible at http://localhost:3000/
and the admin can be found at http://localhost:3000/admin/.
Instead of a stable build, if you want to use the bleeding edge version of Solidus, use this line:
gem 'solidus', github: 'solidusio/solidus'
Note: The master branch is not guaranteed to ever be in a fully functioning state. It is unwise to use this branch in a production system you care deeply about.
By default, the installation generator (rails g spree:install
) will run
migrations as well as adding seed and sample data. This can be disabled using
rails g spree:install --migrate=false --sample=false --seed=false
You can always perform any of these steps later by using these commands.
bundle exec rake railties:install:migrations
bundle exec rake db:migrate
bundle exec rake db:seed
bundle exec rake spree_sample:load
There are also options and rake tasks provided by solidus_auth_devise.
You may notice that your Solidus store runs slowly in development mode. This
can be because in development each css and javascript is loaded as a separate
include. This can be disabled by adding the following to
config/environments/development.rb
.
config.assets.debug = false
Clone the Git repo
git clone git://github.com/solidusio/solidus.git
cd solidus
Install the gem dependencies
bundle install
Solidus is meant to be run within the context of Rails application. You can easily create a sandbox application inside of your cloned source directory for testing purposes.
This sandbox includes solidus_auth_devise and generates with seed and sample data already loaded.
Create the sandbox application (DB=mysql
or DB=postgresql
can be specified
to override the default sqlite)
bundle exec rake sandbox
Start the server
cd sandbox
rails server
We use CircleCI to run the tests for Solidus as well as all incoming pull requests. All pull requests must pass to be merged.
You can see the build statuses at https://circleci.com/gh/solidusio/solidus
To execute all the tests, run this command at the root of the Solidus project to generate test applications and run specs for all projects:
bash build.sh
This runs using postgresql by default, but can be overridden by specifying
DB=sqlite
or DB=mysql
in the environment.
PhantomJS is required for the frontend and backend test suites.
Each gem contains its own series of tests, and for each directory, you need to do a quick one-time creation of a test application and then you can use it to run the tests. For example, to run the tests for the core project.
cd core
bundle exec rake test_app
bundle exec rspec spec
If you would like to run specs against a particular database you may specify the dummy apps database, which defaults to sqlite3.
DB=postgresql bundle exec rake test_app
You can also enable fail fast in order to stop tests at the first failure
FAIL_FAST=true bundle exec rspec spec/models/state_spec.rb
If you want to run the simplecov code coverage report
COVERAGE=true bundle exec rspec spec
In addition to core functionality provided in Solidus, there are a number of ways to add features to your store that are not (or not yet) part of the core project.
A list can be found at extensions.solidus.io.
Solidus is an open source project and we encourage contributions. Please read CONTRIBUTING.md before contributing.
FAQs
Unknown package
We found that sapna_gale_test 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.