Name | ipahcc JSON |
Version |
0.17
JSON |
| download |
home_page | None |
Summary | IPA enrollment agent for Red Hat Hybrid Cloud Console |
upload_time | 2024-04-06 08:00:56 |
maintainer | None |
docs_url | None |
author | Christian Heimes |
requires_python | >=3.6 |
license | GPL-3.0-or-later |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# IPA plugin for Hybrid Cloud Console
The *ipa-hcc* plugin provides schema extension of IPA for
Hybrid Cloud Console integration. The plugin must be installed on all FreeIPA
servers, preferable before the server/replica is installed.
If the plugin is installed later, then the local schema cache may be
outdated and ``ipa`` command may not be aware of the new attributes.
In that case the local schema cache can be refreshed by enforcing
a schema check ``ipa -eforce_schema_check=True ping`` or by purging
the cache with ``rm -rf ~/.cache/ipa``.
Installation requires a server upgrade ``ipa-server-upgrade`` and
restart of services ``ipactl restart``. The post transaction hook
of the RPM package takes care of both. A server upgrade can take a
while and can disrupt normal operations on the machine. It is advised
to serialize the operation and install the plugin on one server at a
time.
## Additional host attributes
* *HCCOrgId*: string
* *HCCSubscriptionId*: string
* *HCCInventoryId*: string
* *HCCCertSubject*: string (auto-generated)
## Server config
* *HCCOrgId*: string
* *HCCDomainId*: string
## Host groups
Host group ``hcc-enrollment`` is created on server upgrade. Hosts with
a ``HCCSubscriptionId`` are automatically added to the host group by
an **automember rule**.
## certmap rule
A certmap rule ``rhsm-cert`` matches subject of RHSM certificates to host's
``HCCCertSubject` attribute.
## service principal
Each IPA server has a ``hcc-enrollment/$FQDN`` service with role
``HCC Enrollment Administrators``.
## Indexes
* Index on ``HCCSubscriptionId`` for presence and equality
* Index on ``HCCInventoryId`` for presence and equality
* Index on ``HCCCertSubject`` for presence and equality
* Uniqueness of ``HCCCertSubject`` attributes
## Command line extension
```
$ ipa host-mod --help
...
--hccsubscriptionid=STR
--hccinventoryid=STR
...
$ ipa host-show host.test.example
...
organization id: 42
subscription id: 1f84492f-a824-41b8-8ccd-a4e9e1ab2f3d
inventory id: e98a6828-faf2-4917-8f0f-7af27fad3683
RHSM certificate subject: O=42,CN=1f84492f-a824-41b8-8ccd-a4e9e1ab2f3d
...
$ ipa config-mod --help
...
--hccorgid=STR organization id
--hccdomainid=STR domain id
...
```
## Internal IPA API extension
The `hccjwk` plugin adds internal APIs:
* ``hccjwk_add``
* ``hccjwk_find``
* ``hccjwk_show``
* ``hccjwk_revoke``
* ``hccjwk_del``
## Roles / Privileges / Permissions
* Permission
* ``System: Read HCC config attributes``
* ``System: Read HCC host attributes``
* ``System: Modify HCC host attributes``
* ``System: Read HCC JWKs``
* ``System: Add HCC JWK``
* ``System: Delete HCC JWK``
* ``System: Modify HCC JWK``
* Privilege ``HCC Host Administrators`` that grants permissions
* ``System: Add Hosts`` (IPA permission)
* ``System: Modify HCC host attributes`` (IPA permission)
* ``System: Read HCC config attributes``
* ``System: Read HCC host attributes``
* ``System: Modify HCC host attributes``
* Privilege ``HCC JWK Administrators`` that grants permissions
* ``System: Read HCC JWKs``
* ``System: Add HCC JWK``
* ``System: Delete HCC JWK``
* ``System: Modify HCC JWK``
* Role ``HCC Enrollment Administrators`` with privileges
* ``HCC Host Administrators``
* ``HCC JWK Administrators``
## Schema / server updater
The update file `85-hcc.update` for `ipa-server-upgrade` creates:
- host group `hcc-enrollment`
- automember rule for host group
- certmap rule `rhsm-cert`
- additional role and privileges
- new indexes and unique constraint
- runs `update_hcc` update plugin
The `update_hcc` update plugin:
- modifies KRB5 KDC config file to trust the RHSM certificate chain and
restarts the service if necessary.
- checks HCCOrgId setting in IPA's global configuration. If the
option is not set, then it sets the value based on the subject org
name of server's RHSM certificate (`/etc/pki/consumer/cert.pem`).
- set/update HCCSubscriptionId of the server's host entry based on the
subject CN of the server's RHSM certificate.
The update file `86-hcc-enrollment-service.update` runs the
`update_hcc_enrollment_service` plugin, whoch
- creates service account `hcc-enrollment/$FQDN@$REALM`
- adds the service to the `HCC Enrollment Administrators` role
- creates or validates the keytab for `hcc-enrollment/$FQDN@$REALM`
service account
## Server test setup
1) Prepare host
```
$ hostnamectl set-hostname ipaserver.ipahcc.test
$ vi /etc/hosts
# add public IPv4 address to /etc/hosts
$ dnf install ipa-server ipa-server-dns
```
2) Install an IPA server with DNS
```
$ ipa-server-install -n ipahcc.test -r IPAHCC.TEST -p DMSecret123 -a Secret123 \
--setup-dns --auto-forwarders --no-dnssec-validation -U
```
3) Configure `trusted_network` ACL in `/etc/named/*.conf` and
`systemctl restart named.service`, e.g.
```
# /etc/named/ipa-ext.conf
acl "trusted_network" {
localnets;
localhost;
10.0.0.0/8;
};
```
```
# /etc/named/ipa-options-ext.conf
allow-recursion { trusted_network; };
allow-query-cache { trusted_network; };
listen-on-v6 { any; };
dnssec-validation no;
```
4) Add client hostname to DNS
```
$ kinit admin
$ ipa dnsrecord-add ipahcc.test ipaclient1 --a-rec=...
```
5) Create a [Red Hat API](https://access.redhat.com/articles/3626371) refresh
token and save it in `/etc/ipa/hcc/refresh_token`.
```
cat > /etc/ipa/hcc/refresh_token
...
EOF
chown ipahcc:root /etc/ipa/hcc/refresh_token
chmod 640 /etc/ipa/hcc/refresh_token
```
**WARNING** the token has the same privileges as your user
account.
6) Install plugin and other services
```
dnf install 'dnf-command(copr)'
dnf copr enable @podengo/ipa-hcc
dnf install --refresh ipa-hcc-server
```
**NOTE** It is possible to install a server/replica with `ipa-hcc-server`
package pre-installed. Both variants are supported and yield the same result.
The token and `/etc/ipa/hcc.conf` must be set before the server is installed.
## Client test setup
1) Install packages
RHEL 8.8+ or RHEL 9.2+
```
dnf install 'dnf-command(copr)'
dnf copr enable @podengo/ipa-hcc
dnf install --refresh ipa-client ipa-hcc-client
```
3) Configure DNS and hostname. The client must be able to discover its
IPA domain and IPA servers with DNS SRV discovery.
4) Enable the auto-enrollment service
```
systemctl enable ipa-hcc-auto-enrollment.service
```
5) Register system with RHSM and Insights
RHEL >= 8:
```
rhc connect
```
RHEL 7:
```
subscription-manager register ...
insights-client --register
rhc connect
```
The `ipa-hcc-auto-enrollment.service` triggers after `rhc` starts the
`rhcd` service. The enrollment service runs the script
`ipa-hcc-auto-enrollment.py`, which uses DNS SRV discovery to locate
IPA servers, connects to `/hcc` WSGI app to self-register the
host and finally runs `ipa-client-install`.
## Client test setup (step by step)
1) Copy `/var/lib/ipa-client/pki/kdc-ca-bundle.pem` from server to client.
2) Register system with RHSM and Insights
```
rhc connect
```
Older RHEL versions may require manual registration with insights
```
insights-client --register
```
3) Self-register host with IdM
```
curl \
--cacert /root/kdc-ca-bundle.pem \
--cert /etc/pki/consumer/cert.pem \
--key /etc/pki/consumer/key.pem \
https://ipaserver.hmsidm.test/hcc
```
4) Enroll host with IdM
```
ipa-client-install \
--pkinit-identity=FILE:/etc/pki/consumer/cert.pem,/etc/pki/consumer/key.pem \
--pkinit-anchor=FILE:/root/kdc-ca-bundle.pem \
--server ipaserver.hmsidm.test --domain hmsidm.test -U -N
```
## Notes
- IPA's KDC plugin caches certmap rules for 5 minutes. For rapid testing
restart the KDC with ``systemctl restart krb5kdc.service``. See
``ipa_kdc_certauth.c``: ``DEFAULT_CERTMAP_LIFETIME``.
- ``ipa certmap-match`` is only implemented for users. It cannot be used
to test cert mappings for hosts.
## Workarounds
IdM does not implement [#9272](https://pagure.io/freeipa/issue/9272)
*"Install CA certificates only for PKINIT or TLS client auth"*, yet.
- Apache HTTPd is configured to load extra CA certs for client cert
authentication from CA path `/usr/share/ipa-hcc/cacerts/`.
- Kerberos KDC loads extra PKINIT trust anchors from
`DIR:/usr/share/ipa-hcc/cacerts`.
## Known issues
### Global authentication types affect host auth
* Affects: RHEL 8.9, 9.3, and earlier
* Ticket: https://pagure.io/freeipa/issue/9485
IPA's KDC KDB plugin has a known issue related to global user auth
configuration. If an admin sets a global policy for user auth types and does
not include `pkinit`, then the KDC refuses cert authentication for hosts.
```shell
$ ipa config-mod --user-auth-type=password --user-auth-type=otp
$ ipa config-show
...
Default user authentication types: password, otp
```
`ipa-client-install` fails with:
```
kinit: KDC policy rejects request while getting initial credentials
```
and `/var/log/krb5kdc.log` contains:
```
PKINIT pre-authentication not allowed for this user.: host/host.ipa.example@IPA.EXAMPLE for krbtgt/IPA.EXAMPLE@IPA.EXAMPLE, KDC policy rejects request
```
Workaround: also enable `pkinit`:
```shell
ipa config-mod --user-auth-type=password --user-auth-type=otp --user-auth-type=pkinit
```
## Development and Testing
See `CONTRIBUTING.md` for how to contribute to this repository.
See `DEVELOPMENT.md` for instructions how to set up local development
environment and how to utilize `idm-ci` for testing.
## License
See file 'COPYING' for use and warranty information
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Raw data
{
"_id": null,
"home_page": null,
"name": "ipahcc",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Christian Heimes",
"author_email": "Christian Heimes <cheimes@redhat.com>",
"download_url": "https://files.pythonhosted.org/packages/bb/92/eebf175d1e74aa965116240d9d692ab32daaa39f9be95e725ba4f6c64c89/ipahcc-0.17.tar.gz",
"platform": "any",
"description": "# IPA plugin for Hybrid Cloud Console\n\nThe *ipa-hcc* plugin provides schema extension of IPA for\nHybrid Cloud Console integration. The plugin must be installed on all FreeIPA\nservers, preferable before the server/replica is installed.\n\nIf the plugin is installed later, then the local schema cache may be\noutdated and ``ipa`` command may not be aware of the new attributes.\nIn that case the local schema cache can be refreshed by enforcing\na schema check ``ipa -eforce_schema_check=True ping`` or by purging\nthe cache with ``rm -rf ~/.cache/ipa``.\n\nInstallation requires a server upgrade ``ipa-server-upgrade`` and\nrestart of services ``ipactl restart``. The post transaction hook\nof the RPM package takes care of both. A server upgrade can take a\nwhile and can disrupt normal operations on the machine. It is advised\nto serialize the operation and install the plugin on one server at a\ntime.\n\n## Additional host attributes\n\n* *HCCOrgId*: string\n* *HCCSubscriptionId*: string\n* *HCCInventoryId*: string\n* *HCCCertSubject*: string (auto-generated)\n\n## Server config\n\n* *HCCOrgId*: string\n* *HCCDomainId*: string\n\n## Host groups\n\nHost group ``hcc-enrollment`` is created on server upgrade. Hosts with\na ``HCCSubscriptionId`` are automatically added to the host group by\nan **automember rule**.\n\n## certmap rule\n\nA certmap rule ``rhsm-cert`` matches subject of RHSM certificates to host's\n``HCCCertSubject` attribute.\n\n## service principal\n\nEach IPA server has a ``hcc-enrollment/$FQDN`` service with role\n``HCC Enrollment Administrators``.\n\n## Indexes\n\n* Index on ``HCCSubscriptionId`` for presence and equality\n* Index on ``HCCInventoryId`` for presence and equality\n* Index on ``HCCCertSubject`` for presence and equality\n* Uniqueness of ``HCCCertSubject`` attributes\n\n## Command line extension\n\n```\n$ ipa host-mod --help\n ...\n --hccsubscriptionid=STR\n --hccinventoryid=STR\n ...\n$ ipa host-show host.test.example\n ...\n organization id: 42\n subscription id: 1f84492f-a824-41b8-8ccd-a4e9e1ab2f3d\n inventory id: e98a6828-faf2-4917-8f0f-7af27fad3683\n RHSM certificate subject: O=42,CN=1f84492f-a824-41b8-8ccd-a4e9e1ab2f3d\n ...\n$ ipa config-mod --help\n ...\n --hccorgid=STR organization id\n --hccdomainid=STR domain id\n ...\n```\n\n## Internal IPA API extension\n\nThe `hccjwk` plugin adds internal APIs:\n* ``hccjwk_add``\n* ``hccjwk_find``\n* ``hccjwk_show``\n* ``hccjwk_revoke``\n* ``hccjwk_del``\n\n\n## Roles / Privileges / Permissions\n\n* Permission\n * ``System: Read HCC config attributes``\n * ``System: Read HCC host attributes``\n * ``System: Modify HCC host attributes``\n * ``System: Read HCC JWKs``\n * ``System: Add HCC JWK``\n * ``System: Delete HCC JWK``\n * ``System: Modify HCC JWK``\n* Privilege ``HCC Host Administrators`` that grants permissions\n * ``System: Add Hosts`` (IPA permission)\n * ``System: Modify HCC host attributes`` (IPA permission)\n * ``System: Read HCC config attributes``\n * ``System: Read HCC host attributes``\n * ``System: Modify HCC host attributes``\n* Privilege ``HCC JWK Administrators`` that grants permissions\n * ``System: Read HCC JWKs``\n * ``System: Add HCC JWK``\n * ``System: Delete HCC JWK``\n * ``System: Modify HCC JWK``\n* Role ``HCC Enrollment Administrators`` with privileges\n * ``HCC Host Administrators``\n * ``HCC JWK Administrators``\n\n## Schema / server updater\n\nThe update file `85-hcc.update` for `ipa-server-upgrade` creates:\n\n- host group `hcc-enrollment`\n- automember rule for host group\n- certmap rule `rhsm-cert`\n- additional role and privileges\n- new indexes and unique constraint\n- runs `update_hcc` update plugin\n\nThe `update_hcc` update plugin:\n\n- modifies KRB5 KDC config file to trust the RHSM certificate chain and\n restarts the service if necessary.\n- checks HCCOrgId setting in IPA's global configuration. If the\n option is not set, then it sets the value based on the subject org\n name of server's RHSM certificate (`/etc/pki/consumer/cert.pem`).\n- set/update HCCSubscriptionId of the server's host entry based on the\n subject CN of the server's RHSM certificate.\n\nThe update file `86-hcc-enrollment-service.update` runs the\n`update_hcc_enrollment_service` plugin, whoch\n\n- creates service account `hcc-enrollment/$FQDN@$REALM`\n- adds the service to the `HCC Enrollment Administrators` role\n- creates or validates the keytab for `hcc-enrollment/$FQDN@$REALM`\n service account\n\n\n## Server test setup\n\n1) Prepare host\n\n```\n$ hostnamectl set-hostname ipaserver.ipahcc.test\n$ vi /etc/hosts\n# add public IPv4 address to /etc/hosts\n$ dnf install ipa-server ipa-server-dns\n```\n\n2) Install an IPA server with DNS\n\n```\n$ ipa-server-install -n ipahcc.test -r IPAHCC.TEST -p DMSecret123 -a Secret123 \\\n --setup-dns --auto-forwarders --no-dnssec-validation -U\n```\n\n3) Configure `trusted_network` ACL in `/etc/named/*.conf` and\n`systemctl restart named.service`, e.g.\n\n```\n# /etc/named/ipa-ext.conf\nacl \"trusted_network\" {\n localnets;\n localhost;\n 10.0.0.0/8;\n};\n```\n\n```\n# /etc/named/ipa-options-ext.conf\nallow-recursion { trusted_network; };\nallow-query-cache { trusted_network; };\nlisten-on-v6 { any; };\ndnssec-validation no;\n```\n\n4) Add client hostname to DNS\n\n```\n$ kinit admin\n$ ipa dnsrecord-add ipahcc.test ipaclient1 --a-rec=...\n```\n\n5) Create a [Red Hat API](https://access.redhat.com/articles/3626371) refresh\ntoken and save it in `/etc/ipa/hcc/refresh_token`.\n\n```\ncat > /etc/ipa/hcc/refresh_token\n...\nEOF\nchown ipahcc:root /etc/ipa/hcc/refresh_token\nchmod 640 /etc/ipa/hcc/refresh_token\n```\n\n**WARNING** the token has the same privileges as your user\naccount.\n\n6) Install plugin and other services\n\n```\ndnf install 'dnf-command(copr)'\ndnf copr enable @podengo/ipa-hcc\ndnf install --refresh ipa-hcc-server\n```\n\n**NOTE** It is possible to install a server/replica with `ipa-hcc-server`\npackage pre-installed. Both variants are supported and yield the same result.\nThe token and `/etc/ipa/hcc.conf` must be set before the server is installed.\n\n## Client test setup\n\n1) Install packages\n\nRHEL 8.8+ or RHEL 9.2+\n```\ndnf install 'dnf-command(copr)'\ndnf copr enable @podengo/ipa-hcc\ndnf install --refresh ipa-client ipa-hcc-client\n```\n\n3) Configure DNS and hostname. The client must be able to discover its\nIPA domain and IPA servers with DNS SRV discovery.\n\n4) Enable the auto-enrollment service\n\n```\nsystemctl enable ipa-hcc-auto-enrollment.service\n```\n\n5) Register system with RHSM and Insights\n\nRHEL >= 8:\n\n```\nrhc connect\n```\n\nRHEL 7:\n\n```\nsubscription-manager register ...\ninsights-client --register\nrhc connect\n```\n\nThe `ipa-hcc-auto-enrollment.service` triggers after `rhc` starts the\n`rhcd` service. The enrollment service runs the script\n`ipa-hcc-auto-enrollment.py`, which uses DNS SRV discovery to locate\nIPA servers, connects to `/hcc` WSGI app to self-register the\nhost and finally runs `ipa-client-install`.\n\n## Client test setup (step by step)\n\n1) Copy `/var/lib/ipa-client/pki/kdc-ca-bundle.pem` from server to client.\n\n2) Register system with RHSM and Insights\n\n```\nrhc connect\n```\n\nOlder RHEL versions may require manual registration with insights\n\n```\ninsights-client --register\n```\n\n3) Self-register host with IdM\n\n```\ncurl \\\n --cacert /root/kdc-ca-bundle.pem \\\n --cert /etc/pki/consumer/cert.pem \\\n --key /etc/pki/consumer/key.pem \\\n https://ipaserver.hmsidm.test/hcc\n```\n\n4) Enroll host with IdM\n\n```\nipa-client-install \\\n --pkinit-identity=FILE:/etc/pki/consumer/cert.pem,/etc/pki/consumer/key.pem \\\n --pkinit-anchor=FILE:/root/kdc-ca-bundle.pem \\\n --server ipaserver.hmsidm.test --domain hmsidm.test -U -N\n```\n\n## Notes\n\n- IPA's KDC plugin caches certmap rules for 5 minutes. For rapid testing\n restart the KDC with ``systemctl restart krb5kdc.service``. See\n ``ipa_kdc_certauth.c``: ``DEFAULT_CERTMAP_LIFETIME``.\n- ``ipa certmap-match`` is only implemented for users. It cannot be used\n to test cert mappings for hosts.\n\n## Workarounds\n\nIdM does not implement [#9272](https://pagure.io/freeipa/issue/9272)\n*\"Install CA certificates only for PKINIT or TLS client auth\"*, yet.\n\n- Apache HTTPd is configured to load extra CA certs for client cert\n authentication from CA path `/usr/share/ipa-hcc/cacerts/`.\n- Kerberos KDC loads extra PKINIT trust anchors from\n `DIR:/usr/share/ipa-hcc/cacerts`.\n\n## Known issues\n\n### Global authentication types affect host auth\n\n* Affects: RHEL 8.9, 9.3, and earlier\n* Ticket: https://pagure.io/freeipa/issue/9485\n\nIPA's KDC KDB plugin has a known issue related to global user auth\nconfiguration. If an admin sets a global policy for user auth types and does\nnot include `pkinit`, then the KDC refuses cert authentication for hosts.\n\n```shell\n$ ipa config-mod --user-auth-type=password --user-auth-type=otp\n$ ipa config-show\n...\nDefault user authentication types: password, otp\n```\n\n`ipa-client-install` fails with:\n```\nkinit: KDC policy rejects request while getting initial credentials\n```\n\nand `/var/log/krb5kdc.log` contains:\n```\nPKINIT pre-authentication not allowed for this user.: host/host.ipa.example@IPA.EXAMPLE for krbtgt/IPA.EXAMPLE@IPA.EXAMPLE, KDC policy rejects request\n```\n\nWorkaround: also enable `pkinit`:\n```shell\nipa config-mod --user-auth-type=password --user-auth-type=otp --user-auth-type=pkinit\n```\n\n## Development and Testing\n\nSee `CONTRIBUTING.md` for how to contribute to this repository.\n\nSee `DEVELOPMENT.md` for instructions how to set up local development\nenvironment and how to utilize `idm-ci` for testing.\n\n## License\n\nSee file 'COPYING' for use and warranty information\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "IPA enrollment agent for Red Hat Hybrid Cloud Console",
"version": "0.17",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4708ec01a42760ad2f9eaba1353d2573c46bd943f7d7f9ba88acfae02dd8b206",
"md5": "7d6aa6d317d3ab379ce7dedc7901232d",
"sha256": "3022e148844f4348ef5b485517d096707eecb6606072de8e0c0854aeb603e61c"
},
"downloads": -1,
"filename": "ipahcc-0.17-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "7d6aa6d317d3ab379ce7dedc7901232d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 87003,
"upload_time": "2024-04-06T08:00:54",
"upload_time_iso_8601": "2024-04-06T08:00:54.612298Z",
"url": "https://files.pythonhosted.org/packages/47/08/ec01a42760ad2f9eaba1353d2573c46bd943f7d7f9ba88acfae02dd8b206/ipahcc-0.17-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bb92eebf175d1e74aa965116240d9d692ab32daaa39f9be95e725ba4f6c64c89",
"md5": "2e3784907f4efce0742a8b51a5fd9bca",
"sha256": "5f52c978d7f1f3cdd907dda7bc34b8a085ba37c3c7535b5dd736afae094a8a26"
},
"downloads": -1,
"filename": "ipahcc-0.17.tar.gz",
"has_sig": false,
"md5_digest": "2e3784907f4efce0742a8b51a5fd9bca",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 161756,
"upload_time": "2024-04-06T08:00:56",
"upload_time_iso_8601": "2024-04-06T08:00:56.130667Z",
"url": "https://files.pythonhosted.org/packages/bb/92/eebf175d1e74aa965116240d9d692ab32daaa39f9be95e725ba4f6c64c89/ipahcc-0.17.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-06 08:00:56",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ipahcc"
}