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.
net.nextpulse:postmarkapp
Advanced tools
An API client for the Postmark APIs, allowing both sending and receiving of email as well as account management.
JAdmin is a simple library to help provide a data administration UI to manage various data sources, both in your existing Java web application and stand alone.
It can be used to easily expose CRUD access to data originating from a wide range of sources, including rows in your SQL tables, .properties
files or data in NoSQL databases.
In the current set-up, JAdmin is focused on providing trusted users with access to data, it is not yet suitable to provide access to untrusted users. Unlike Light Admin, JAdmin does not depend on Spring Boot or JPA, providing a lightweight and customizable solution.
Inspired by the Ruby Active Admin library.
Add the library to your Java 8+/Scala/Kotlin application:
For Maven users:
<dependency>
<groupId>net.nextpulse</groupId>
<artifactId>jadmin</artifactId>
<version>(version)</version>
</dependency>
For sbt users:
libraryDependencies += "net.nextpulse" % "jadmin" % "(version)"
For gradle users:
repositories {
mavenCentral()
}
dependencies {
compile 'net.nextpulse:jadmin:(version)'
}
And call the API to add resources you'd like to expose through the admin panel:
JAdmin jAdmin = new JAdmin();
// connect to a JDBC datasource and add the users table with default settings (all but the primary key columns are editable, all columns are included on the table index)
DataSource source = retrieveMyDataSource();
jAdmin.resource("users", source);
Alternatively, you can tailor the exposed columns to your own needs as follows:
jAdmin.resource("users", source)
.formConfig((form) -> form
// add a header, grouping an username and password input field
.inputGroup("Login credentials", (group) -> group.input("username").input("password"))
// add a header with an is_admin input field
.inputGroup("Permissions", (group) -> group.input("is_admin"))
// add some text
.paragraph("Press cancel to go back.")
// include the submit & cancel buttons
.actions()
)
// custom index
.indexConfig((index) -> index
// do show the user id, while not exposing this through the edit page
.column("id")
// show the username
.column("username")
// do show the created_at column on the index page
.column("created_at")
);
If you would like to expose a resource that is not backed by a (JDBC compliant) SQL database, it's also possible to
provide your own implementation of the AbstractDAO
and ResourceSchemaProvider
classes. As an example of a DAO
implementation, take a look at the InMemoryDAO
implementation.
Customizing the templates and translation files used by JAdmin is done by placing customized versions of the files in the
src/main/resources/jadmin/templates
and src/main/resources/jadmin/i18n
folder of your own project.
When a template (or translation file) is loaded, JAdmin will first look in these directories before falling back on
the /net/nextpulse/jadmin
directory.
For details on the available template syntax, take a look at Freemarker, the template engine used by JAdmin.
<select>
for foreign key columnsFor performance reasons, JAdmin will currently not actively reload the table definition for a default SQL resource. This means that if you update your table definition, you'll have to restart the application for these to show up.
FAQs
An API client for the Postmark APIs, allowing both sending and receiving of email as well as account management.
We found that net.nextpulse:postmarkapp demonstrated a not healthy version release cadence and project activity because the last version was released 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
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.