Skip to main content

Addresses

Types of Address

An address in the Person Registry is intended to be a US Post Office deliverable address, that is, a fully articulated street, city, state, country, zip location, or foreign equivalent, representing a place a person lives, works or receives mail. Note that the Registry, being an aggregate of data from many sources, cannot restrict addresses to mailable addresses only. The post office won't actually deliver to a dorm address on campus even though that's a valid indication of where a student lives. But the values are intended to be syntactically complete nonetheless.

The Person Registry supports the following types of address:

Address type Occ Source Description
min:max reg ext user
permanent 1:1 no yes yes Permanent residence
local 1:1 no yes yes Local address, if different than permanent
mail 1:n no yes yes Mailing address
home 0:n yes no no The "best" residential address
homemail 0:n yes no no The "best" mailing address
office 0:1 per aff no yes yes Per-affiliation office/work address
work 0:n yes no no Single "best" work address
  • Occ: min:max occurrences, where max="n" is no specified limit.
  • Source: reg(istry) = internally generated by Registry/Person rules; ext(ernal) = contributed by external source systems such as Campus PeopleSoft; user = person themselves during self registration or via Stanford.You

Permanent Address

Registry Database: table=address, type_cd=general, aff_source_cd=(null), aff_source_instance=(null)
XML Document: <address type="permanent">
LDAP Directory: suPermanentAddress

Generally speaking, where the person lives. For students this is often a parent's address, not a campus or nearby location. For faculty and staff, this address should be the official residence the University can use to determine your legal residence for health and benefits services.

Local Address

Registry Database: table=address, type_cd=local
XML Document: <address type="local">
LDAP Directory: suLocalAddress

An optional address where a person can record a more local (to Stanford) address if it differs from their permanent address. Students record their campus dorm address or local house/apartment as a "local" address. Faculty, staff and affiliates will have less occasion to use this, but visitors (short and long term) who might retain a legal residence elsewhere can indicate their local living arrangement here.

Note, in StanfordYou this address is labeled "Temporary address".

Mailing Address

Registry Database: table=address, type_cd=mail
XML Document: <address type="mail">
LDAP Directory: suMailAddress

An optional mailing address, if different than local or permanent addresses, specifically for US Mail delivery when mail delivery to the residence addresses is not possible or desired. This is often a P.O. Box.

Home Address

Registry Database: n/a
XML Document: <address type="home">
LDAP Directory: n/a

A derived address, not stored separately in the database, computed as

  • local address
  • else permanent address

This provides a "best" single value for home residence address as a convenience for downstream systems, such as the directory.

Home Mailing Address

Registry Database: n/a
XML Document: <address type="homemail">
LDAP Directory: homePostalAddress

A derived address, not stored separately in the database, computed as

  • mail address
  • else local address
  • else permanent address

This provides a "best" single value for a US Post Office delivery address as a convenience for downstream systems, such as the directory.

Office Address

Registry Database: table=address, type_cd=general, with aff_source data
XML Document: <address type="office">
LDAP Directory: suGwAffilAddress[n]

A per-affiliation work address (the term "office" is used because it can occur for both staff and students, and to semantically distinguish it from the "work" address below).

Work Address

Registry Database: n/a
XML Document: <address type="home">
LDAP Directory: postalAddress
  street

A derived address, not stored separately in the database, taken from the highest ranking non-private affiliation. This provides a "best" single value for work address as a convenience for downstream systems, such as the directory.

Parts of an Address

Each address in the registry is stored as a single row in the address table of the Registry database. An address consists of these parts:

What Required? Schema xml
Type of address yes type_cd <address type="..."> attribute
Street(s) no line1..line3 <address>...<line> element
City no city <address>...<city> element
State code no state_cd <address>...<state> element
Province no province <address>...<province> element
Country code yes country_cd <address>...<country> element
Postal code no postalcode <address>...<postalcode> element

Type of address

Type of data per above.

Street

One to three lines of street address.

City

Name of a city.

State

Any of the United States state or protectorates (e.g., Puerto Rico) that are recognized by the US Post Office for mail delivery and defined by 2-charactrer US postal code. The value is stored in the database by the 2-character code.

For online sources of state and province code abbreviations see
US state and territories and
Canadian Province Codes

A table of state codes and values is in database pregistry, table state. The name values from this table are used on output to expand state codes to their display value.

Province

An optional, free text equivalent to state code for foreign addresses.

Country

A valid ISO 3166-1, stored as the two-character ISO 3166-1 country code. For the ISO online published short names and codes, see http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html.

A table of ISO country codes (numeric, 2-character aloha and 3-character alpha) and values is in database pregistry, table country. The values from this table are used on output to display all three codes and name value.

Postal Code

Any valid ZIP code or foreign equivalent. When the country is US and there is a valid State code, this value is assumed to be a ZIP code and is edited against a range of valid ZIP codes found in database pregistry, table state.

Data integration rules

Addresses from the source to the registry

  • A source may contribute one each of a permanent, local and mail, address.
  • A source may not contribute a home address (this is a Registry-derived address).
  • A source may contribute one office address for each affiliation.
  • A source may not contribute a work address (this is a Registry-derived address).

Addresses in the registry outbound Person XML document

  • Addresses of type permanent, local and mail are represented at the root level of the document.
  • A single home address is generated from the other personal addresses and represented in the <place> element of type=home, also at the document root level.
  • Each office address is inside a <place> element of type=office inside the corresponding <AFFILIATION>affiliation.
  • A single work address is generated from the office address in the highest ranked office address and represented in the <place> element of type=work, and found at the document root level.

Events

Registry/Directory synchronization events

The Person Registry posts the following events when specific types of addresses change:

Type of address event (domain:topic) parm1 parm2
reconcile registry_person:reconcile none none

Note: Parms were originally included to optimize slog operations and are no longer needed. While they provide some contextual information for the events, they are no longer needed to help maintain the directory and could be eliminated.

Infrastructure person events

The Person Slog process that maintains the Person data in the Directory posts the following events when these directory attributes change:

Directory attribute event (domain:topic) parm1
suPermanentAddress person:address permanent
suLocalAddress person:address local
suMailAddress person:address mail
homePostalAddress person:address homemail
street person:address work
postalAddress person:address workmail

Note: The parms designating the particular address types are part of the design for these public events and should not be omitted. Consumers may be filtering on these values to select only changes needed by their system.

Last modified