fripa 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4b9a552724de9440ae408046a6e38c16f8d384726525ad589ba864dce04ae14
4
- data.tar.gz: 4330ef7308fd8302b2c513b6f899ebdde194baea527b6d9c93eb633e1bf9e12b
3
+ metadata.gz: 60749fcd7e07c8fa7d130e5a1b93933efc6e4d8b245fb9901f8f28c882b9a413
4
+ data.tar.gz: 1016bdc948602416a33524777e3707902b386a1bdbe2953c8d14fd4def294c5f
5
5
  SHA512:
6
- metadata.gz: 27f407fe7b2e73c25c3800b2caddfe6e2c249895aeaec1a1a2fb7bf8435207d5084b051b024bff153addc0908391b3971e49a233398e9ca253ac4159e9497c1a
7
- data.tar.gz: e45bda9e4d673f372421f8ed90173d83f153ae7d7a074d741750f3dd00b6057b09079e82d314f5987695331b983d80456625ff04fe7b00fb7f535b31a8bf60b3
6
+ metadata.gz: 94be9bf349433e13e1063c17f73431c929fdd9c61e44552d4f1542b53f97ba8b5c8ab898ebcbf07914fd50303e9cf2d69dfc1cea2fd8c5cfa4aaf3b4b3a3f13e
7
+ data.tar.gz: 6b751211e984596207e58872a2745d6ab12a22bac7ad5e64d0dfdb6538ff170938f3e2d5523db678ffe5e686ae014ab258e168fb9a2502fd01100bd3fe2a8d64
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.2] - 2025-11-14
4
+
5
+ ### Fixed
6
+ - Fixed `Fripa.configure` block syntax not working due to missing required `host` parameter in Configuration initializer
7
+ - Configuration validation now happens at usage time instead of initialization time
8
+
3
9
  ## [0.1.0] - 2025-10-07
4
10
 
5
11
  Initial release of Fripa - A Ruby client for the FreeIPA JSON-RPC API.
data/README.md CHANGED
@@ -4,6 +4,9 @@ A Ruby client for the FreeIPA JSON-RPC API.
4
4
 
5
5
  Docs: [FreeIPA JSON-RPC API](https://freeipa.readthedocs.io/en/latest/api/json-rpc.html)
6
6
 
7
+ ## What is FreeIPA
8
+ FreeIPA (Free Identity, Policy, Audit) is an open-source identity management system for Linux/Unix environments. It provides centralized authentication, authorization, and account information by integrating LDAP, Kerberos, DNS, and certificate management. Essentially, it helps organizations manage users, groups, and access policies in a secure and unified way.
9
+
7
10
  ## Installation
8
11
 
9
12
  Add this line to your application's Gemfile:
@@ -33,7 +36,9 @@ Configure your FreeIPA server settings globally. These settings are shared acros
33
36
  ```ruby
34
37
  Fripa.configure do |config|
35
38
  config.host = 'ipa.example.com'
36
- config.verify_ssl = true # default: true
39
+ config.port = 8443 # optional, default: 443 (standard HTTPS port)
40
+ config.scheme = 'https' # optional, default: 'https' (use 'http' for local development)
41
+ config.verify_ssl = true # default: true
37
42
  end
38
43
  ```
39
44
 
@@ -42,6 +47,8 @@ end
42
47
  ```ruby
43
48
  Fripa.config = {
44
49
  host: 'ipa.example.com',
50
+ port: 8443, # optional
51
+ scheme: 'https', # optional
45
52
  verify_ssl: true
46
53
  }
47
54
  ```
@@ -51,6 +58,8 @@ Fripa.config = {
51
58
  ```ruby
52
59
  config = Fripa::Configuration.new(
53
60
  host: 'ipa.example.com',
61
+ port: 8443, # optional
62
+ scheme: 'https', # optional
54
63
  verify_ssl: true
55
64
  )
56
65
  Fripa.config = config
@@ -60,9 +69,24 @@ Fripa.config = config
60
69
 
61
70
  ```ruby
62
71
  Fripa.config.host = 'ipa.example.com'
72
+ Fripa.config.port = 8443 # optional
73
+ Fripa.config.scheme = 'https' # optional
63
74
  Fripa.config.verify_ssl = false
64
75
  ```
65
76
 
77
+ ### Local development example
78
+
79
+ For local FreeIPA instances running on HTTP:
80
+
81
+ ```ruby
82
+ Fripa.configure do |config|
83
+ config.host = 'localhost'
84
+ config.port = 8080
85
+ config.scheme = 'http'
86
+ config.verify_ssl = false
87
+ end
88
+ ```
89
+
66
90
  ## Usage
67
91
 
68
92
  ### Creating a Client
@@ -6,23 +6,34 @@ require "uri"
6
6
  module Fripa
7
7
  # Configuration for Fripa
8
8
  class Configuration
9
- attr_accessor :host, :verify_ssl
9
+ attr_accessor :host, :port, :scheme, :verify_ssl
10
10
 
11
- def initialize(host: nil, verify_ssl: true)
11
+ def initialize(host: nil, port: nil, scheme: "https", verify_ssl: true)
12
12
  @host = host
13
+ @port = port
14
+ @scheme = scheme
13
15
  @verify_ssl = verify_ssl
14
16
  end
15
17
 
16
18
  def base_url
17
- URI::HTTPS.build(host: host)
19
+ build_uri
18
20
  end
19
21
 
20
22
  def login_url
21
- URI::HTTPS.build(host: host, path: "/ipa/session/login_password")
23
+ build_uri(path: "/ipa/session/login_password")
22
24
  end
23
25
 
24
26
  def api_url
25
- URI::HTTPS.build(host: host, path: "/ipa/session/json")
27
+ build_uri(path: "/ipa/session/json")
28
+ end
29
+
30
+ private
31
+
32
+ def build_uri(path: nil)
33
+ raise ArgumentError, "host is required" if host.nil? || host.empty?
34
+
35
+ uri_class = scheme == "https" ? URI::HTTPS : URI::HTTP
36
+ uri_class.build(host: host, port: port, path: path)
26
37
  end
27
38
  end
28
39
 
data/lib/fripa/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fripa
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fripa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno Costanzo