Shield v0.7.0 released

Shield is a comprehensive security solution for Lucky framework. It features robust authentication and authorization, including user registrations, logins and logouts, password resets and more.

Links: Source | Documentation | Changelog

Quick Start

Get started quickly using Penny -- a Lucky application scaffold that gets you up and running with Shield.

Upgrading

See penny.diff for some of the changes you might need to make in your existing app.

Shield v0.6.0 adds support for @LuckyFramework v0.25.0

Shield is a comprehensive security solution for Lucky framework. It features robust authentication and authorization, including user registrations, logins and logouts, password resets and more.

Get started using Meth: Meth is a Lucky application scaffold that gets you up and running with Shield.

Version 0.6.0 adds support for Lucky v0.25.0, and drops support for earlier versions.

This version improves on features introduced in earlier versions, and fixes a few bugs.

Find source and documentation on GitHub:

https://github.com/GrottoPress/shield/tree/v0.6.0

Cryflare -- A Low-level API Client for Cloudflare® v4

Cryflare is a low-level API client for Cloudflare® v4. It features an intuitive interface that maps perfectly to the Cloudflare API.

Source: https://github.com/GrottoPress/cryflare

Examples

# Create a new client
client = Cryflare::Client.new(
  email: "cloudflare-email",
  key: "cloudflare-api-key"
)
# Get zone by name
client.zones.index(name: "grottopress.com") do |response|
  if response.success?
    response.result.try &.first?.try do |zone|
      puts zone.id
      puts zone.name
      puts zone.owner.name
      # ...
    end
  else
    response.errors.each do |error|
      puts error.code
      puts error.message
    end
  end
end
# Create new DNS record
client.dns_records.create(
  "zone-id",
  type: "A",
  name: "example.com",
  content: "127.0.0.1",
  ttl: 120
) do |response|
  if response.success?
    response.result.try do |dns_record|
      puts dns_record.id
      puts dns_record.name
      puts dns_record.content
      # ...
    end
  else
    response.errors.each do |error|
      puts error.code
      puts error.message
    end
  end
end
# Delete firewall rule
client.firewall_rules.destroy("zone-id", "rule-id") do |response|
  if response.success?
    response.result.try do |firewall_rule|
      puts firewall_rule.id
      # ...
    end
  else
    response.errors.each do |error|
      puts error.code
      puts error.message
    end
  end
end

Source: https://github.com/GrottoPress/cryflare

Shield v0.5.0 – Login idle timeout, Pwned Passwords, and more...

Shield is a comprehensive security solution for Lucky framework. It features robust authentication and authorization, including user registrations, logins and logouts, password resets and more.

Version 0.5.0 adds the ability to automatically log a user out after a set period of inactivity. This does not require any user interaction -- Shield sends a Refresh response header to force a reload of the page after the login times out, which triggers the action pipe that terminates the session.

We added a new Avram::Validations.validate_not_pwned method that checks that given passwords do not appear in a known data breach, using the Pwned Passwords API.

https://forum.crystal-lang.org/t/shield-v0-5-0-login-idle-timeout-pwned-passwords-and-more/2723

Shield v0.4.0 Presents RFC 6750 Bearer Logins (API Tokens)

Shield is a comprehensive security solution for Lucky framework. It features robust authentication and authorization, including user registrations, logins and logouts, password resets and more.

Version 0.4.0 enables authentication via access tokens, per RFC 6750. Any registered user may create bearer logins, and delegate some or all of their rights to them in the form of scopes...

https://forum.crystal-lang.org/t/shield-v0-4-0-presents-rfc-6750-bearer-logins-api-tokens/2678