Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
You've just found a new way of mocking microservices!
An example config that demonstrates the common features of Mockintosh:
services:
- name: Mock for Service1
hostname: localhost
port: 8000
managementRoot: __admin # open http://localhost:8001/__admin it in browser to see the UI
endpoints:
- path: "/" # simplest mock
- path: "/api/users/{{param}}" # parameterized URLs
response: "simple string response with {{param}} included"
- path: /comprehensive-matching-and-response
method: POST
queryString:
qName1: qValue # will only match if query string parameter exists
qName2: "{{regEx '\\d+'}}" # will require numeric value
headers:
x-required-header: someval # will cause only requests with specific header to work
body:
text: "{{regEx '.+'}}" # will require non-empty POST body
response: # the mocked response specification goes below
status: 202
body: "It worked"
headers:
x-response-header: "{{random.uuid4}}" # a selection of random/dynamic functions is available
x-query-string-value: "{{request.queryString.qName2}}" # request parts can be referenced in response
Mockintosh is a service virtualization tool that's capable to generate mocks for RESTful APIs and communicate with message queues to either mimic asynchronous tasks or to simulate microservice architectures in a blink of an eye.
The state-of-the-art mocking capabilities of Mockintosh enables software development teams to work independently while building and maintaining a complicated microservice architecture.
Key features:
In this article we explain how and why Mockintosh was born as a new way of mocking microservices.
Install Mockintosh app on Mac using Homebrew package manager:
$ brew install up9inc/repo/mockintosh
Download an installer from releases section and launch it. Follow the steps in wizard to install Mockintosh.
Install Mockintosh Python package using pip
(or pip3
on some machines):
$ pip install -U mockintosh
Run following command to generate example.yaml
file in the current directory:
$ mockintosh --sample-config example.yaml
then, run that config with Mockintosh:
$ mockintosh example.yaml
And open http://localhost:9999 in your web browser.
You can also issue some CURL requests against it:
curl -v http://localhost:8888/
curl -v http://localhost:8888/api/myURLParamValue123/action
curl -v "http://localhost:8888/someMoreFields?qName1=qValue&qName2=12345" -X POST -H"X-Required-Header: someval" --data "payload"
The list of command-line arguments can be seen by running mockintosh --help
.
If you don't want to listen all of the services in a configuration file then you can specify a list of service
names (name
is a string attribute you can set per service):
$ mockintosh example.yaml 'Mock for Service1' 'Mock for Service2'
Using --quiet
and --verbose
options the logging level can be changed.
Using --bind
option the bind address for the mock server can be specified, e.g. mockintosh --bind 0.0.0.0
Using --enable-tags
option the tags in the configuration file can be enabled in startup time,
e.g. mockintosh --enable-tags first,second
Note: This feature is experimental. One-to-one transpilation of OAS documents is not guaranteed.
It could be a good kickstart if you have already an OpenAPI Specification for your API. Mockintosh is able to transpile an OpenAPI Specification to its own config format in two different ways:
--convert
Using the --convert
one can convert an OpenAPI Specification to Mockintosh config.
JSON output example:
$ wget https://petstore.swagger.io/v2/swagger.json
$ mockintosh swagger.json -c new_config.json json
YAML example:
$ mockintosh swagger.json -c new_config.yaml yaml
If you start Mockintosh with a valid OpenAPI Specification file then it automatically detects that the input is an OpenAPI Specification file:
$ mockintosh swagger.json
and automatically starts itself from that file. Without producing any new files. So you can start to edit this file through the management UI without even restarting Mockintosh.
Single-command from /docs
to review docs locally:
docker run -p 8080:4000 -v $(pwd):/site bretfisher/jekyll-serve
Or manual:
$ gem install jekyll bundler
Install the gems:
$ cd docs/
$ bundle config set --local path 'vendor/bundle'
$ bundle install
Run the server:
$ bundle exec jekyll serve
FAQs
The API mocking server for microservice environments
We found that mockintosh demonstrated a healthy version release cadence and project activity because the last version was released less than 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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.