manage forever process through capistrano
Small library for spawning and managing child processes
The Nodeum API makes it easy to tap into the digital data mesh that runs across your organisation. Make requests to our API endpoints and we’ll give you everything you need to interconnect your business workflows with your storage. All production API requests are made to: http://nodeumhostname/api/ The current production version of the API is v1. **REST** The Nodeum API is a RESTful API. This means that the API is designed to allow you to get, create, update, & delete objects with the HTTP verbs GET, POST, PUT, PATCH, & DELETE. **JSON** The Nodeum API speaks exclusively in JSON. This means that you should always set the Content-Type header to application/json to ensure that your requests are properly accepted and processed by the API. **Authentication** All API calls require user-password authentication. **Cross-Origin Resource Sharing** The Nodeum API supports CORS for communicating from Javascript for these endpoints. You will need to specify an Origin URI when creating your application to allow for CORS to be whitelisted for your domain. **Pagination** Some endpoints such as File Listing return a potentially lengthy array of objects. In order to keep the response sizes manageable the API will take advantage of pagination. Pagination is a mechanism for returning a subset of the results for a request and allowing for subsequent requests to “page” through the rest of the results until the end is reached. Paginated endpoints follow a standard interface that accepts two query parameters, limit and offset, and return a payload that follows a standard form. These parameters names and their behavior are borrowed from SQL LIMIT and OFFSET keywords. **Versioning** The Nodeum API is constantly being worked on to add features, make improvements, and fix bugs. This means that you should expect changes to be introduced and documented. However, there are some changes or additions that are considered backwards-compatible and your applications should be flexible enough to handle them. These include: - Adding new endpoints to the API - Adding new attributes to the response of an existing endpoint - Changing the order of attributes of responses (JSON by definition is an object of unordered key/value pairs) **Filter parameters** When browsing a list of items, multiple filter parameters may be applied. Some operators can be added to the value as a prefix: - `=` value is equal. Default operator, may be omitted - `!=` value is different - `>` greater than - `>=` greater than or equal - `<` lower than - `>=` lower than or equal - `><` included in list, items should be separated by `|` - `!><` not included in list, items should be separated by `|` - `~` pattern matching, may include `%` (any characters) and `_` (one character) - `!~` pattern not matching, may include `%` (any characters) and `_` (one character)
simple container management
ActionInsight is a robust analysis and error management package tailored for the Ruby on Rails ecosystem. Developed with the intent of enhancing web application performance and reliability, ActionInsight tracks the components operating in the background of your application, analyzes processes over time, and aggregates performance metrics. Additionally, it captures error situations and provides advanced tools for error analysis. By considering not only user interactions but also the internal mechanics of the application, from database queries to background tasks, it facilitates a comprehensive examination. Through customizable alerts and notifications, it offers developers real-time feedback and aids in preemptively identifying potential issues. ActionInsight streamlines the development process, assisting in creating more efficient, swift, and dependable web applications.
A simple and reliable file-based session manager with eXclusive R/W locking. Session data is updated atomically using mutex and file locks, making it suitable for multi-threaded and multi-process applications.
upnxt_processing_worker_manager
Generates WSDL automatically. It manages jobs as asynchronous processes
Creates an interfaces with access to the main components of a server, allowing one to interact with services and process, such as databases and memory management tools, through easy commands.
Pazuzu is a supervisor daemon that manages pools of application processes as daemons.
Fluentd is an open source data collector designed to scale and simplify log management. It can collect, process and ship many kinds of data in near real-time.
Something small for process management
Run a process in a wrapper that manages config files from zookeeper
Manages forking multiple processes and returns results to the parent process
Engine for managing GDPR processes.
Sleepily managing processes
Spawn child processes without managing IO streams, zombie processes and other details.
A library to manage editorial objects used in the NeuroLibre's moderation and screening process
Process manager for applications with multiple components
Manages data partitions in batch processing.
Sidekiq strategies to manage accounts processing actions.
Process manager for distributed applications.
In Huanteng Smart we manufacture smart household gadgets which all connect to a single long running eventmachine application to receive and send instructions with the server. This eventmachine application is a single Linux process holding all TCP connections never closes them. One day, we found that this process was leaking memory, and here is how we managed to trace its cause.
Something small for process management
jekyll-sketchviz is a Jekyll plugin that integrates Graphviz and Rough.js to process .dot files into SVG diagrams during the site build. It supports configurable output formats, including unstyled filesystem SVGs and inline SVGs styled via CSS. The plugin leverages Jekyll collections for input management and provides a Liquid tag API for flexible inclusion in site content.
Ruby interface for the chDB in-process SQL OLAP Engine, providing direct query execution and session management capabilities.
This gem extends the internationalization (i18n) functionality in Ruby on Rails by adding a simple toggle button to your application’s UI. When activated, it overlays each translated string with a tooltip that displays its associated translation key on hover. This allows QA teams, product managers, and other non-technical stakeholders to quickly identify which translation keys correspond to specific pieces of text on the page—without diving into source code. Designed for simplicity and ease-of-use, the gem integrates seamlessly with the Rails asset pipeline and can be easily enabled or disabled as needed, streamlining your localization quality assurance process.
`agent99` is a Ruby gem designed to facilitate the creation and management of smart agents, providing a straightforward interface for tasks such as natural language processing, context handling, and conversing with various AI models. It allows developers to smoothly integrate and utilize AI capabilities within Ruby applications while ensuring flexibility and ease of customization.
EtlRubyWrapper is a Ruby gem designed to facilitate ETL (Extract, Transform, Load) operations by executing a Go binary. This gem allows you to easily run ETL processes by managing the binary execution and error handling within a Ruby application. It's ideal for projects that need efficient data processing but prefer leveraging Ruby's simplicity for orchestration.
Process Manager For Resque
LocalBus is a lightweight yet powerful pub/sub system for Ruby applications that enables decoupled communication within a single process. It offers both non-blocking I/O and thread pool processing modes, robust error handling, and fine-grained concurrency controls. Perfect for organizing event-driven architectures, handling background jobs, and managing complex workflows without external dependencies."
Solara is a Ruby library that simplifies the management of white label apps for Flutter, iOS, Android, and Web. With a centralized dashboard and a powerful CLI, Solara enables effortless configuration and control over dynamic app components, streamlining the setup process for multiple brands.
JRubyParallelProcessing is a gem for parallel processing tasks in JRuby. It provides classes for efficient data processing, task management with priority and retries, and parallel API request handling. It includes features such as middleware support, stream processing, and distributed task execution.
This powerful database utility library simplifies and automates common database tasks, including exports, imports, and data migrations. With its intuitive interface and robust feature set, it enables developers to manage databases more efficiently, saving time and reducing errors in the process.
Kulu is a powerful orchestration tool for managing LLM agents and their data, inspired by the functionality of CrewAI models. It simplifies the process of integrating and coordinating multiple language models to solve complex problems efficiently.
# Quick Start The Owner API uses the JSON format, and must be accessed over a [secure connection](https://en.wikipedia.org/wiki/HTTPS). Let’s assume that the access token provided by your account manager is “TOKEN”. Here’s how to get the list of ids of all your invoices from the first week of August with a shell script: ```bash query="end_date=2018-08-08T00%3A00%3A00%2B00%3A00&start_date=2018-08-01T00%3A00%3A00%2B00%3A00" curl -i "https://api-eu.getaround.com/owner/v1/invoices?${query}" \ -H "Authorization: Bearer TOKEN" \ -H "Accept:application/json" \ -H "Content-Type:application/json" ``` And here’s how to get the invoice with the id 12345: ```bash curl -i "https://api-eu.getaround.com/owner/v1/invoices/12345" \ -H "Authorization: Bearer TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json"" ``` See the [endpoints section](#tag/Invoices) of this guide for details about the response format. Dates in request params should follow the ISO 8601 standard. # Authentication All requests must be authenticated with a [bearer token header](https://tools.ietf.org/html/rfc6750#section-2.1). You token will be sent to you by your account manager. Unauthenticated requests will return a 401 status. # Pagination The page number and the number of items per page can be set with the “page” and “per_page” params. For example, this request will return the second page of invoices, and 50 invoices per page: `https://api-eu.getaround.com/owner/v1/invoices?page=2&per_page=50` Both of these params are optional. The default page size is 30 items. The Getaround Owner API follows the [RFC 8288 convention](https://datatracker.ietf.org/doc/html/rfc8288) of using the `Link` header to provide the `next` page URL. Please don't build the pagination URLs yourself. The `next` page will be missing when you are requesting the last available page. Here's an example response header from requesting the second page of invoices `https://api-eu.getaround.com/owner/v1/invoices?page=2&per_page=50` ``` Link: <https://api-eu.getaround.com/owner/v1/invoices?page=3&per_page=50>; rel="next" ``` # Throttling policy and Date range limitation We have throttling policy that prevents you to perform more than 100 requests per min from the same IP. Also, there is a limitation on the size of the range of dates given in params in some requests. All requests that need start_date and end_date, do not accept a range bigger than 30 days. # Webhooks Getaround can send webhook events that notify your application when certain events happen on your account. This is especially useful to follow the lifecycle of rentals, tracking for example bookings or cancellations. ### Setup To set up an endpoint, you need to define a route on your server for receiving events, and then <a href="mailto:owner-api@getaround.com">ask Getaround</a> to add this URL to your account. To acknowledge receipt of a event, your endpoint must: - Return a `2xx` HTTP status code. - Be a secure `https` endpoint with a valid SSL certificate. ### Testing Once Getaround has set up the endpoint, and it is properly configured as described above, a test `ping` event can be sent by clicking the button below: <form action="/docs/api/owner/fire_ping_webhook" method="post"><input type="submit" value="Send Ping Event"></form> You should receive the following JSON payload: ```json { "data": { "ping": "pong" }, "type": "ping", "occurred_at": "2019-04-18T08:30:05Z" } ``` ### Retries Webhook deliveries will be attempted for up to three days with an exponential back off. After that point the delivery will be abandoned. ### Verifying Signatures Getaround will also provide you with a secret token, which is used to create a hash signature with each payload. This hash signature is passed along with each request in the headers as `X-Drivy-Signature`. Suppose you have a basic server listening to webhooks that looks like this: ```ruby require 'sinatra' require 'json' post '/payload' do push = JSON.parse(params[:payload]) "I got some JSON: #{push.inspect}" end ``` The goal is to compute a hash using your secret token, and ensure that the hash from Getaround matches. Getaround uses an HMAC hexdigest to compute the hash, so you could change your server to look a little like this: ```ruby post '/payload' do request.body.rewind payload_body = request.body.read verify_signature(payload_body) push = JSON.parse(params[:payload]) "I got some JSON: #{push.inspect}" end def verify_signature(payload_body) signature = 'sha1=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), ENV['SECRET_TOKEN'], payload_body) return halt 500, "Signatures didn't match!" unless Rack::Utils.secure_compare(signature, request.env['HTTP_X_DRIVY_SIGNATURE']) end ``` Obviously, your language and server implementations may differ from this code. There are a couple of important things to point out, however: No matter which implementation you use, the hash signature starts with `sha1=`, using the key of your secret token and your payload body. Using a plain `==` operator is not advised. A method like secure_compare performs a "constant time" string comparison, which renders it safe from certain timing attacks against regular equality operators. ### Best Practices - **Acknowledge events immediately**. If your webhook script performs complex logic, or makes network calls, it’s possible that the script would time out before Getaround sees its complete execution. Ideally, your webhook handler code (acknowledging receipt of an event by returning a `2xx` status code) is separate of any other logic you do for that event. - **Handle duplicate events**. Webhook endpoints might occasionally receive the same event more than once. We advise you to guard against duplicated event receipts by making your event processing idempotent. One way of doing this is logging the events you’ve processed, and then not processing already-logged events. - **Do not expect events in order**. Getaround does not guarantee delivery of events in the order in which they are generated. Your endpoint should therefore handle this accordingly. We do provide an `occurred_at` timestamp for each event, though, to help reconcile ordering.
This Ruby gem streamlines the deployment and management of services within a Git repository by leveraging systemd. Designed to simplify the process of installing and updating services, the gem enables automated deployment operations. It integrates systemd functionalities to manage services as daemons, allowing for monitoring, starting, stopping, and restarting services directly through Git commands. Configuration is set up quickly and easily in a YAML file, ensuring a user-friendly experience. The configuration and use of this gem ensure greater operational efficiency, reducing the time and effort required for manual service management.
The Shell Card Management API is REST-based and employs OAUTH 2.0,Basic and ApiKey authentication. The API endpoints accept JSON-encoded request bodies, return JSON-encoded responses and use standard HTTP response codes. All resources are located in the Shell Card Platform. The Shell Card Platform is the overall platform that encompasses all the internal Shell systems used to manage resources. The internal workings of the platform are not important when interacting with the API. However, it is worth noting that the platform uses a microservice architecture to communicate with various backend systems and some API calls are processed asynchronously. All endpoints use the POST verb for retrieving, updating, creating and deleting resources in the Shell Card Platform. The endpoints that retrieve resources from the Shell Card Platform allow flexible search parameters in the API request body.
Something small for process management
Guard plugin for the invoker process management utility.
MergeRequestInsight helps developers and team leads manage code reviews more effectively by providing detailed insights into merge requests, such as code complexity and potential bottlenecks. It integrates seamlessly into existing workflows, making the code review process more efficient and productive.
Process manager for applications with multiple components, fork of ddollar/foreman
Something small for process management
Fluentd is an open source data collector designed to scale and simplify log management. It can collect, process and ship many kinds of data in near real-time.
A smart, static site generator that automatically manages dependencies to achieve blazing build times with minimal cognitive load. Only new and changed files, and files upstream of a changed dependency are processed. Renders markdown or embedded-Ruby (Erb-like) content as HTML. Supports templates (embedded & layout), which may be included within content sources or other templates. Document metadata may me added using a plain-text preamble of key-value pairs. Generates a complete website that can be served by the built-in WEBrick server.
Fluentd is an open source data collector designed to scale and simplify log management. It can collect, process and ship many kinds of data in near real-time.
Overmind is a process manager for Procfile-based applications and tmux.
This is the Songtradr API. Use it to retrieve deep music metadata and trigger processes like auto-tagging. You can also use the API to manage your account and musicube cloud data. **Authentication** 1. Reach out to support@songtradr.com to receive a free account or use your login data if you are already signed up. 2. To authenticate, you need to login via the POST /api/v1/user/login endpoint. 3. The endpoint responds with a jwtToken which you can use in all following API requests as a bearer token. **Rate Limiting** The current limit is 120 Requests per minute. Reach out to us via support@songtradr.com if you need to request more. **Getting Started with auto-tagging** 1. If you want to get your own files auto-tagged, use the POST /api/v1/user/file/{name}/initUpload endpoint. It responds with a presigned S3 link where you can upload your file. 2. You can check the processing status of your file via the GET /api/v1/user/file/{name}/filesStatus endpoint. 3. As soon as processing is done, you can request the generated data via the GET /api/v1/user/files endpoint. **Getting Started with search** You can either search the released music via the /public/recording endpoints or your own private uploaded music via the /user/file/ endpoints. 1. If you want to search the world's released music, a good starting point is the GET /api/v1/public/recording/search endpoint. Please find the extensive list of parameters that serve as semantic search filters. 2. If you want to search your own previously uploaded music, a good starting point is the GET GET /api/v1/user/files endpoint. It has the same extensive list of parameters that serve as semantic search filters.
RubyGems-deploy is a versatile tool crafted to streamline the deployment process of Ruby gems onto RubyGems.org. With intuitive commands and seamless integration, it simplifies gem versioning, metadata management, and release procedures, empowering developers to effortlessly share their creations with the Ruby community.
Fluentd is an open source data collector designed to scale and simplify log management. It can collect, process and ship many kinds of data in near real-time.