fripa 0.1.0 → 0.1.1

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: d50f7498dd0bbd51cdedde2bdd30db19e23d50062bcc013bc4ff560888f8a830
4
+ data.tar.gz: b677039839af7e04549d7277976798953f48c551df25c7c3f97fb432cf176c71
5
5
  SHA512:
6
- metadata.gz: 27f407fe7b2e73c25c3800b2caddfe6e2c249895aeaec1a1a2fb7bf8435207d5084b051b024bff153addc0908391b3971e49a233398e9ca253ac4159e9497c1a
7
- data.tar.gz: e45bda9e4d673f372421f8ed90173d83f153ae7d7a074d741750f3dd00b6057b09079e82d314f5987695331b983d80456625ff04fe7b00fb7f535b31a8bf60b3
6
+ metadata.gz: c491390606580cfecdf5a77551a00d42e661249f2cc2975a28de5bbe3ad5963a116c069d282effddd59ef6dba975f6b0185b872fd5af5b7c01058cc0e5567f83
7
+ data.tar.gz: 4fc759c7aa47dae2ede657e79873fc721a1fcb41480240ca695a352a9ea64cb306247623b32340047709fbb951bb848dcb4840db8990b661fed14aa18020799d
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,32 @@ 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:, 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
+ uri_class = scheme == "https" ? URI::HTTPS : URI::HTTP
34
+ uri_class.build(host: host, port: port, path: path)
26
35
  end
27
36
  end
28
37
 
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.1"
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno Costanzo