Purpose
IETF Data Importer is a Ruby gem providing access to information about IETF working groups and IRTF research groups.
It includes:
-
Data models for IETF and IRTF groups
-
Command-line tools for fetching and updating group data
-
A Ruby API for accessing group information
This gem exists because the official sources often change their layout or may be unavailable:
-
https://datatracker.ietf.org/group/ (formerly tools.ietf.org/wg)
Migration from metanorma-ietf-data
This gem is the renamed and restructured version of metanorma-ietf-data. The namespace and file structure have been changed to match other Metanorma data importer gems.
To migrate from metanorma-ietf-data:
-
Replace the following:
- require "metanorma/ietf/data" - groups = Metanorma::Ietf::Data.groups + require "ietf/data/importer" + groups = Ietf::Data::Importer.groups -
Update your Gemfile:
- gem 'metanorma-ietf-data' + gem 'ietf-data-importer'
Installation
Add this line to your application’s Gemfile:
gem 'ietf-data-importer'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install ietf-data-importer
Usage
For YAML/JSON data users
The gem provides a command-line tool to fetch current group data:
$ ietf-data-importer fetch output.yaml
$ ietf-data-importer fetch output.json --format=json
For Ruby API users
require 'ietf/data/importer'
# Check if a group exists
Ietf::Data::Importer.group_exists?('httpbis')
# Get information about a specific group
group = Ietf::Data::Importer.find_group('httpbis')
puts group.name
puts group.organization
puts group.status
# Get all IETF working groups
wgs = Ietf::Data::Importer.working_groups
# Get all IRTF research groups
rgs = Ietf::Data::Importer.research_groups
# Get groups by a specific type
type_groups = Ietf::Data::Importer.groups_by_type('wg')
# Get groups by area
area_groups = Ietf::Data::Importer.groups_by_area('Applications and Real-Time Area')
# Get active or concluded groups
active = Ietf::Data::Importer.active_groups
concluded = Ietf::Data::Importer.concluded_groups
# Get all available group types
types = Ietf::Data::Importer.group_types
# Get all areas
areas = Ietf::Data::Importer.areas
Data model
Organizations
| Organization | Abbreviation | Description |
|---|---|---|
Internet Engineering Task Force |
ietf |
Standards development organization |
Internet Research Task Force |
irtf |
Research organization |
Group types
| Type | Abbreviation | Organization | Description |
|---|---|---|---|
Working Group |
wg |
ietf |
IETF working groups |
Research Group |
rg |
irtf |
IRTF research groups |
Area |
area |
ietf |
IETF areas |
Team |
team |
ietf |
IETF administrative teams |
Program |
program |
irtf |
IRTF programs |
Directorate |
dir |
ietf |
IETF directorates |
Advisory Group |
ag |
ietf/irtf |
Advisory groups |
Status values
| Status | Description |
|---|---|
active |
Group is currently active |
concluded |
Group has completed its work |
bof |
Birds of a Feather (BOF) session |
proposed |
Proposed but not yet approved |
Command-line interface
The gem provides a command-line tool with the following commands:
# Fetch current IETF/IRTF group data
$ ietf-data-importer fetch [OUTPUT_FILE] --format=yaml|json
# Integrate a YAML file into the gem for distribution
$ ietf-data-importer integrate YAML_FILE
Data schema
The YAML/JSON data follows this schema:
groups:
- abbreviation: string # Group abbreviation or acronym
name: string # Full group name
organization: string # 'ietf' or 'irtf'
type: string # Group type (see table above)
area: string # Area name (for IETF WGs)
status: string # Group status
description: string # Description or charter text
chairs: # Array of chairs
- string # Chair name
mailing_list: string # Mailing list address
mailing_list_archive: string # Archive URL
website_url: string # Group website URL
charter_url: string # Charter document URL
concluded_date: string # ISO date of conclusion (if applicable)
groups:
- abbreviation: httpbis
name: HTTP
organization: ietf
type: wg
area: Applications and Real-Time Area
status: active
description: The HTTP working group is chartered to maintain and develop the Hypertext Transfer Protocol...
chairs:
- Chair Person 1
- Chair Person 2
mailing_list: [email protected]
mailing_list_archive: https://mailarchive.ietf.org/arch/browse/httpbis/
website_url: https://httpwg.org/
charter_url: https://datatracker.ietf.org/wg/httpbis/about/
Copyright
This gem is developed, maintained and funded by Ribose Inc.
License
The gem is available as open source under the terms of the 2-Clause BSD License.