
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
af-consul
Advanced tools
const registerOptions = {
name: 'service name', // (String): service name
id: 'service ID', // (String, optional): service ID
tags: ['tag1'], // (String[], optional): service tags
address: '0.0.0.0', // (String, optional): service IP address
port: 9602, // (Integer, optional): service port
meta: {}, // (Object, optional): metadata linked to the service instance
check: { // (Object, optional): service check
http: '', // (String): URL endpoint, requires interval
tcp: '', // (String): host:port to test, passes if connection is established, fails otherwise
script: '', // (String): path to check script, requires interval
dockercontainerid: '', // (String, optional): Docker container ID to run script
shell: '', // (String, optional): shell in which to run script (currently only supported with Docker)
interval: '', // (String): interval to run check, requires script (ex: 15s)
timeout: '', // (String, optional): timeout for the check (ex: 10s)
ttl: '', // (String): time to live before check must be updated, instead of http/tcp/script and interval (ex: 60s)
notes: '', // (String, optional): human readable description of check
status: '', // (String, optional): initial service status
deregistercriticalserviceafter: '' // (String, optional, Consul 0.7+): timeout after which to automatically deregister service if check remains in critical state
},
checks: [{}], // (Object[], optional): service checks (see check above)
connect: {}, // (Object, optional): specifies the configuration for Connect
proxy: {}, // (Object, optional): specifies the configuration for a Connect proxy instance
taggedAddresses: {} // (Object, optional): specifies a map of explicit LAN and WAN addresses for the service instance
};
import 'dotenv/config';
import os from 'os';
import { logger } from './logger';
import { getAPI } from '../src';
const e = process.env;
const config = {
consul: {
check: {
interval: e.CONSUL_HEALTH_CHECK_INTERVAL || '1s',
timeout: e.CONSUL_HEALTH_CHECK_TMEOUT || '1s',
deregistercriticalserviceafter: e.CONSUL_DEREGISTER_CRITICAL_SERVICE_AFTER || '1m',
},
agent: {
reg: {
host: e.CONSUL_AGENT_HOST || thisHostName,
port: e.CONSUL_AGENT_PORT || '8500',
secure: e.CONSUL_AGENT_SECURE,
token: e.CONSUL_AGENT_TOKEN,
},
dev: {
dc: e.CONSUL_AGENT_DEV_DC || 'dc-dev',
host: e.CONSUL_AGENT_DEV_HOST || thisHostName,
port: e.CONSUL_AGENT_DEV_PORT || '8500',
secure: e.CONSUL_AGENT_DEV_SECURE,
token: e.CONSUL_AGENT_DEV_TOKEN,
},
prd: {
dc: e.CONSUL_AGENT_PRD_DC || 'dc-prd',
host: e.CONSUL_AGENT_PRD_HOST || thisHostName,
port: e.CONSUL_AGENT_PRD_PORT || '8500',
secure: e.CONSUL_AGENT_PRD_SECURE,
token: e.CONSUL_AGENT_PRD_TOKEN,
},
},
// Details of the service being registered with consul
service: {
name: e.CONSUL_SERVICE_NAME || 'af-consul',
instance: e.CONSUL_SERVICE_INSTANCE || 'test',
version: e.CONSUL_SERVICE_VERSION || '0.0.1',
description: e.CONSUL_SERVICE_DESCRIPTION || 'AF-CONSUL TEST',
tags: e.CONSUL_SERVICE_TAGS || ['af', 'consul', 'test'],
meta: e.CONSUL_SERVICE_META || { CONSUL_TEST: 12345, line_yellow: 'straight' },
host: e.CONSUL_SERVICE_HOST || null,
port: e.CONSUL_SERVICE_PORT || null,
},
},
webServer: {
host: e.WS_HOST || '0.0.0.0',
port: e.WS_PORT || '10000',
},
}
AP-UPDATER - access-points-updater:
- Polling ${CONSUL_ID}
- The data is up-to-date ${CONSUL_ID}
af-consul
`${yellow} REGISTER CONFIG:\n${JSON.stringify(registerConfig, undefined, 2)}\n${reset}`
`CONSUL AGENT OPTIONS:\n${JSON.stringify(fullConsulAgentOptions, undefined, 2)}`
`${rqId}HTTP Status: ${statusCode}`
`${rqId}res.body not found! res: ${res}`
`No info about service ID ${cyan}${serviceName}`
`${prefixG} Skip registration check after health check`
af-consul:curl
const msg = dbg.curl ? getCurl(request, true) : getHttpRequestText(request);
`[${request._id_}] ${yellow}${msg}${reset}`
af-consul:reg
`${PREFIX}: updated ${updatedCount.length} access point(s)`
`${prefixG} Service ${cyan}${registerConfig.id}${reset} registration check...`
FAQs
A highly specialized function library
The npm package af-consul receives a total of 5 weekly downloads. As such, af-consul popularity was classified as not popular.
We found that af-consul demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.