Gem Version Build Status Pull Requests Commits since latest

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:

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:

  1. Replace the following:

    - require "metanorma/ietf/data"
    - groups = Metanorma::Ietf::Data.groups
    + require "ietf/data/importer"
    + groups = Ietf::Data::Importer.groups
  2. 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/

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.