Bagit está atualmente definido na RFC 8493. Ele define uma convenção simples de nomeação de arquivos usada pela comunidade de curadoria digital para empacotar conteúdo digital arbitrário, para que possa ser transportado de maneira confiável por meio de mídia física (unidade de disco rígido, CD-ROM, DVD) e transferências de rede (FTP, HTTP, RSYNC, etc.). O BAGIT também é usado para gerenciar a preservação digital de conteúdo ao longo do tempo. Discussão sobre a especificação e suas direções futuras ocorre na lista de discussão de curadoria digital.
A especificação do BAGIT é organizada em torno da noção de "bolsa". Uma bolsa é um diretório de sistema de arquivos nomeado que contém minimamente:
a “data” directory that includes the payload, or data files that comprise the digital content being preserved. Files can also be placed in subdirectories, but empty directories are not supportedat least one manifest file that itemizes the filenames present in the “data” directory, as well as their checksums. The particular checksum algorithm is included as part of the manifest filename. For instance a manifest file with MD5 checksums is named “manifest-md5.txt”a “bagit.txt” file that identifies the directory as a bag, the version of the BagIt specification that it adheres to, and the character encoding used for tag filesAo receber uma bolsa, um software pode examinar o arquivo de manifesto para garantir que os arquivos de carga útil estejam presentes e que suas somas de cheques estejam corretas. Isso permite que os arquivos removidos acidentalmente ou corrompidos sejam identificados. Abaixo está um exemplo de uma bolsa mínima "MyFirstbag" que inclui dois arquivos de carga útil. O conteúdo dos arquivos de tag estão incluídos abaixo de seus nomes de arquivos.
myfirstbag/|-- data| \-- 27613-h| \-- images| \-- q172.png| \-- q172.txt|-- manifest-md5.txt| 49afbd86a1ca9f34b677a3f09655eae9 data/27613-h/images/q172.png| 408ad21d50cef31da4df6d9ed81b01a7 data/27613-h/images/q172.txt\-- bagit.txt BagIt-Version: 0.97 Tag-File-Character-Encoding: UTF-8Neste exemplo, a carga útil consiste em um arquivo de imagem gráfico de rede portátil e um arquivo de texto de reconhecimento óptico de caracteres. Em geral, a identificação e a definição de formatos de arquivo estão fora do escopo da especificação BAGIT; Os atributos de arquivo também estão fora do escopo.
A especificação permite vários arquivos de tag opcionais (além do manifesto). Sua codificação de caráter deve ser identificada em "Bagit.txt", que sempre deve ser codificada no UTF-8. A especificação define os seguintes arquivos de tag opcionais:
a “bag-info.txt” file which details metadata for the bag, using colon-separated key/value pairs (similar to HTTP headers)a tag manifest file which lists tag files and their associated checksums (e.g. “tagmanifest-md5.txt”)a “fetch.txt” that lists URLs where payload files can be retrieved from in addition or to replace payload files in the “data” directoryAté a versão 15, o rascunho também descreveu como serializar uma bolsa em um arquivo de arquivo, como zip ou alcatrão. A partir da versão 15, a serialização não faz mais parte das especificações, mas não por causa de razões técnicas, mas apenas por causa do escopo e foco da especificação.
A especificação BAGIT surgiu de uma colaboração entre a Biblioteca do Congresso e a Biblioteca Digital da Califórnia, enquanto transferia o conteúdo digital criado como parte do programa nacional de infraestrutura e preservação de informações digitais. As origens da idéia datam do trabalho realizado na Universidade de Tsukuba no modelo "Enclose and Deposit", para depositar recursos arquivados mutuamente para permitir a preservação digital a longo prazo. A prática de usar manifestos e somas de verificação é bastante comum, como evidenciado pelo seu uso no ZIP (formato de arquivo), o Deb (formato de arquivo) e em sites públicos de FTP.
Em 2007, a Biblioteca Digital da Califórnia precisava transferir vários terabytes de conteúdo (em grande parte dados de arquivamento da Web) para a Biblioteca do Congresso. A especificação do BAGIT permitiu que o conteúdo fosse embalado em "sacos" com metadados do pacote e um manifesto que detalhou as somas de verificação de arquivo, que foram posteriormente verificadas no recebimento das sacolas. A especificação foi escrita como um rascunho da IETF por John Kunze em dezembro de 2008, onde viu várias revisões antes de ser emitido como RFC. Em 2009, a Biblioteca do Congresso produziu um vídeo que descreve a especificação e os casos de uso ao seu redor. Em 2018, a versão 1.0 foi publicada como uma RFC pela Força -Tarefa de Engenharia da Internet.